<?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>238977</bug_id>
          
          <creation_ts>2022-04-07 20:06:14 -0700</creation_ts>
          <short_desc>Finish porting code base to String::fromLatin1() and make String(const char*) private</short_desc>
          <delta_ts>2022-04-11 08:42:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1859566</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 20:06:14 -0700</bug_when>
    <thetext>Finish porting code base to String::fromLatin1() and make String(const char*) private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859572</commentid>
    <comment_count>1</comment_count>
      <attachid>457008</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 20:49:55 -0700</bug_when>
    <thetext>Created attachment 457008
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859573</commentid>
    <comment_count>2</comment_count>
      <attachid>457009</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 21:00:37 -0700</bug_when>
    <thetext>Created attachment 457009
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859575</commentid>
    <comment_count>3</comment_count>
      <attachid>457010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 21:04:12 -0700</bug_when>
    <thetext>Created attachment 457010
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859585</commentid>
    <comment_count>4</comment_count>
      <attachid>457014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 21:17:55 -0700</bug_when>
    <thetext>Created attachment 457014
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859587</commentid>
    <comment_count>5</comment_count>
      <attachid>457015</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 21:43:04 -0700</bug_when>
    <thetext>Created attachment 457015
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859593</commentid>
    <comment_count>6</comment_count>
      <attachid>457017</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:01:47 -0700</bug_when>
    <thetext>Created attachment 457017
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859595</commentid>
    <comment_count>7</comment_count>
      <attachid>457018</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:08:16 -0700</bug_when>
    <thetext>Created attachment 457018
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859597</commentid>
    <comment_count>8</comment_count>
      <attachid>457019</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:13:16 -0700</bug_when>
    <thetext>Created attachment 457019
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859599</commentid>
    <comment_count>9</comment_count>
      <attachid>457021</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:31:23 -0700</bug_when>
    <thetext>Created attachment 457021
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859601</commentid>
    <comment_count>10</comment_count>
      <attachid>457022</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:45:31 -0700</bug_when>
    <thetext>Created attachment 457022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859602</commentid>
    <comment_count>11</comment_count>
      <attachid>457023</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-07 22:49:58 -0700</bug_when>
    <thetext>Created attachment 457023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859702</commentid>
    <comment_count>12</comment_count>
      <attachid>457062</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 07:20:35 -0700</bug_when>
    <thetext>Created attachment 457062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859715</commentid>
    <comment_count>13</comment_count>
      <attachid>457066</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 07:39:57 -0700</bug_when>
    <thetext>Created attachment 457066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859725</commentid>
    <comment_count>14</comment_count>
      <attachid>457070</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 08:00:11 -0700</bug_when>
    <thetext>Created attachment 457070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859733</commentid>
    <comment_count>15</comment_count>
      <attachid>457073</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 08:16:33 -0700</bug_when>
    <thetext>Created attachment 457073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859738</commentid>
    <comment_count>16</comment_count>
      <attachid>457075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 08:39:08 -0700</bug_when>
    <thetext>Created attachment 457075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859753</commentid>
    <comment_count>17</comment_count>
      <attachid>457079</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 08:57:09 -0700</bug_when>
    <thetext>Created attachment 457079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859770</commentid>
    <comment_count>18</comment_count>
      <attachid>457086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 09:35:33 -0700</bug_when>
    <thetext>Created attachment 457086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859774</commentid>
    <comment_count>19</comment_count>
      <attachid>457087</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 09:48:53 -0700</bug_when>
    <thetext>Created attachment 457087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859777</commentid>
    <comment_count>20</comment_count>
      <attachid>457088</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 09:57:09 -0700</bug_when>
    <thetext>Created attachment 457088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859778</commentid>
    <comment_count>21</comment_count>
      <attachid>457089</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 10:02:27 -0700</bug_when>
    <thetext>Created attachment 457089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859781</commentid>
    <comment_count>22</comment_count>
      <attachid>457090</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 10:07:55 -0700</bug_when>
    <thetext>Created attachment 457090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859794</commentid>
    <comment_count>23</comment_count>
      <attachid>457093</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 10:51:46 -0700</bug_when>
    <thetext>Created attachment 457093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859804</commentid>
    <comment_count>24</comment_count>
      <attachid>457097</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 11:02:15 -0700</bug_when>
    <thetext>Created attachment 457097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859842</commentid>
    <comment_count>25</comment_count>
      <attachid>457111</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 12:42:11 -0700</bug_when>
    <thetext>Created attachment 457111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859887</commentid>
    <comment_count>26</comment_count>
      <attachid>457118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 14:30:47 -0700</bug_when>
    <thetext>Created attachment 457118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859941</commentid>
    <comment_count>27</comment_count>
      <attachid>457128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 16:51:36 -0700</bug_when>
    <thetext>Created attachment 457128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859955</commentid>
    <comment_count>28</comment_count>
      <attachid>457132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 18:04:53 -0700</bug_when>
    <thetext>Created attachment 457132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859962</commentid>
    <comment_count>29</comment_count>
      <attachid>457135</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 19:22:15 -0700</bug_when>
    <thetext>Created attachment 457135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859969</commentid>
    <comment_count>30</comment_count>
      <attachid>457137</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 20:06:10 -0700</bug_when>
    <thetext>Created attachment 457137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859978</commentid>
    <comment_count>31</comment_count>
      <attachid>457142</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 20:45:14 -0700</bug_when>
    <thetext>Created attachment 457142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859981</commentid>
    <comment_count>32</comment_count>
      <attachid>457144</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 21:51:59 -0700</bug_when>
    <thetext>Created attachment 457144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859984</commentid>
    <comment_count>33</comment_count>
      <attachid>457145</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 22:17:41 -0700</bug_when>
    <thetext>Created attachment 457145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859987</commentid>
    <comment_count>34</comment_count>
      <attachid>457148</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 22:40:16 -0700</bug_when>
    <thetext>Created attachment 457148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859990</commentid>
    <comment_count>35</comment_count>
      <attachid>457150</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 22:56:45 -0700</bug_when>
    <thetext>Created attachment 457150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859992</commentid>
    <comment_count>36</comment_count>
      <attachid>457152</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 23:04:01 -0700</bug_when>
    <thetext>Created attachment 457152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859993</commentid>
    <comment_count>37</comment_count>
      <attachid>457153</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 23:16:28 -0700</bug_when>
    <thetext>Created attachment 457153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859994</commentid>
    <comment_count>38</comment_count>
      <attachid>457154</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 23:26:50 -0700</bug_when>
    <thetext>Created attachment 457154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859996</commentid>
    <comment_count>39</comment_count>
      <attachid>457155</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 23:32:40 -0700</bug_when>
    <thetext>Created attachment 457155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860025</commentid>
    <comment_count>40</comment_count>
      <attachid>457168</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 09:42:33 -0700</bug_when>
    <thetext>Created attachment 457168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860029</commentid>
    <comment_count>41</comment_count>
      <attachid>457171</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 10:40:55 -0700</bug_when>
    <thetext>Created attachment 457171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860038</commentid>
    <comment_count>42</comment_count>
      <attachid>457174</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 11:41:23 -0700</bug_when>
    <thetext>Created attachment 457174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860062</commentid>
    <comment_count>43</comment_count>
      <attachid>457182</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 14:22:07 -0700</bug_when>
    <thetext>Created attachment 457182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860067</commentid>
    <comment_count>44</comment_count>
      <attachid>457183</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 15:33:01 -0700</bug_when>
    <thetext>Created attachment 457183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860072</commentid>
    <comment_count>45</comment_count>
      <attachid>457185</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 18:13:32 -0700</bug_when>
    <thetext>Created attachment 457185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860076</commentid>
    <comment_count>46</comment_count>
      <attachid>457186</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 20:05:10 -0700</bug_when>
    <thetext>Created attachment 457186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860084</commentid>
    <comment_count>47</comment_count>
      <attachid>457191</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-09 22:34:53 -0700</bug_when>
    <thetext>Created attachment 457191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860139</commentid>
    <comment_count>48</comment_count>
      <attachid>457209</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 13:01:23 -0700</bug_when>
    <thetext>Created attachment 457209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860154</commentid>
    <comment_count>49</comment_count>
      <attachid>457209</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-10 15:37:28 -0700</bug_when>
    <thetext>Comment on attachment 457209
Patch

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

&gt; Source/WTF/wtf/text/ASCIILiteral.h:73
&gt; +        return !a;

This should be:

    return false;

I don’t like checking !a again, when the line just above has already checked it. Or write this:

    if (!a || !b)
        return a == b;

I kind of like that one.

&gt; Source/WTF/wtf/text/ASCIILiteral.h:83
&gt; +    if (!a)
&gt; +        return !b;
&gt; +    if (!b)
&gt; +        return !a;
&gt;      return !strcmp(a.characters(), b.characters());

Same applies here. Or we could take advantage of the function above and just write:

    return a == b.characters();

&gt; Source/WTF/wtf/text/WTFString.h:81
&gt;      WTF_EXPORT_PRIVATE String(const LChar* characters, unsigned length);
&gt;      WTF_EXPORT_PRIVATE String(const char* characters, unsigned length);

I think that later these should be named String::fromLatin1 too.

&gt; Source/WTF/wtf/text/WTFString.h:82
&gt;      ALWAYS_INLINE static String fromLatin1(const char* characters) { return String { characters }; }

I still like the idea of adding a fromASCII, but I am not pushing you to do that at this time.

&gt; Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:88
&gt; +    init.protocol = String::fromUTF8(protocol.get());

Using fromUTF8 adds in the possibility of failure and the need to check for null, perhaps.

Maybe some day we will want to rename fromUTF8 to have the word &quot;try&quot; in its name.

&gt; Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:159
&gt; +    parameters.rid = String::fromUTF8(gst_structure_get_string(rtcParameters, &quot;rid&quot;));

Ditto, this now has a new possible failure.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1908
&gt; -        String str = &quot;WebGL: checkFramebufferStatus:&quot; + String(reason);
&gt; +        String str = makeString(&quot;WebGL: checkFramebufferStatus: &quot;, reason);
&gt;          printToConsole(MessageLevel::Warning, str);

We should not bother with the local variable here.

&gt; Source/WebCore/loader/soup/ResourceLoaderSoup.cpp:68
&gt; +        auto contentTypeString = String::fromLatin1(contentType.get());
&gt;          ResourceResponse response { url, extractMIMETypeFromMediaType(contentTypeString), static_cast&lt;long long&gt;(dataSize), extractCharsetFromMediaType(contentTypeString).toString() };

Doesn’t extractMIMETypeFromMediaType take a StringView?

&gt; Source/WebCore/platform/graphics/GLContext.cpp:179
&gt; +        auto versionString = String::fromLatin1(reinterpret_cast&lt;const char*&gt;(::glGetString(GL_VERSION)));

This should be changed to use StringView some day. No reason to allocate all these strings just to parse/split something.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:179
&gt; +            auto metadata = String::fromLatin1(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS));

This should be changed to use StringView some day. No reason to allocate a string just to parse/split something.

&gt; Source/WebDriver/WebDriverService.cpp:569
&gt; +        completionHandler(CommandResult::fail(CommandResult::ErrorCode::InvalidSessionID, String(&quot;session deleted because of page crash or hang.&quot;_s)));

I bet most of these String() in this file aren’t needed.

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:1177
&gt;          // DumpRenderTree does not support checking for abandonded documents.

Spelling error in abandoned here.

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:1178
&gt; +        CString result(&quot;\n&quot;);

So strange to use any string at all for this code. Could just have this instead:

    fputs(&quot;Content-Type: text/plain\nContent-Length: 1\n\n#EOF\n&quot;, stdout);
    fputs(&quot;#EOF\n&quot;, stderr);
    fflush(stdout);
    fflush(stderr);

But really not sure if we want to improve this.

&gt; Tools/TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:182
&gt; +    EXPECT_EQ(String::fromLatin1(&quot;åäö&quot;), topPrivatelyControlledDomain(&quot;åäö&quot;_s));
&gt; +    EXPECT_EQ(String::fromLatin1(&quot;ÅÄÖ&quot;), topPrivatelyControlledDomain(&quot;ÅÄÖ&quot;_s));

This already was not OK. We should not have any non-ASCII characters in an ASCIILiteral. In fact, we should be checking that at compile time. If we did, this would fail to compile.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:285
&gt; +                        auto key = signingParty == TokenSigningParty::Source ? String(&quot;source_unlinkable_token&quot;_s) : String(&quot;destination_unlinkable_token&quot;_s);

Should be able to take all the String() out here.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:323
&gt; +                                        auto key = signingParty == TokenSigningParty::Source ? String(&quot;source_secret_token&quot;_s) : String(&quot;destination_secret_token&quot;_s);

And here.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:331
&gt; +                                        key = signingParty == TokenSigningParty::Source ? String(&quot;source_secret_token_signature&quot;_s) : String(&quot;destination_secret_token_signature&quot;_s);

And here.

&gt; Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:104
&gt; +    EXPECT_EQ(String(&quot;http://www.webkit.org/&quot;_s), String([url absoluteString]));

Don’t need a String() around the ASCIILiteral, I don’t think.

&gt; Tools/TestWebKitAPI/Tests/mac/WebViewCanPasteURL.mm:49
&gt; +    EXPECT_EQ(String(&quot;http://www.webkit.org/&quot;_s), String(text));

Ditto.

&gt; Tools/TestWebKitAPI/Tests/mac/WillPerformClientRedirectToURLCrash.mm:67
&gt; +    EXPECT_EQ(String(&quot;PASS&quot;_s), String(message));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860160</commentid>
    <comment_count>50</comment_count>
      <attachid>457209</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 16:02:02 -0700</bug_when>
    <thetext>Comment on attachment 457209
Patch

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

&gt;&gt; Source/WTF/wtf/text/ASCIILiteral.h:73
&gt;&gt; +        return !a;
&gt; 
&gt; This should be:
&gt; 
&gt;     return false;
&gt; 
&gt; I don’t like checking !a again, when the line just above has already checked it. Or write this:
&gt; 
&gt;     if (!a || !b)
&gt;         return a == b;
&gt; 
&gt; I kind of like that one.

Ok, will change. I think I&apos;ll have to use this though:
if (!a || !b)
    return a.characters() == b;

FYI, I had copied the logic from String&apos;s operator==.

&gt;&gt; Source/WTF/wtf/text/WTFString.h:81
&gt;&gt;      WTF_EXPORT_PRIVATE String(const char* characters, unsigned length);
&gt; 
&gt; I think that later these should be named String::fromLatin1 too.

I agree.

&gt;&gt; Source/WTF/wtf/text/WTFString.h:82
&gt;&gt;      ALWAYS_INLINE static String fromLatin1(const char* characters) { return String { characters }; }
&gt; 
&gt; I still like the idea of adding a fromASCII, but I am not pushing you to do that at this time.

I don&apos;t fully understand the benefit of the fromASCII(). Sure, we can artificially enforce via assertions that the input is ASCII but it won&apos;t really help us write a more efficient constructor, will it?
If so, is it really worth adding yet another way to construct a String?

&gt;&gt; Source/WebCore/loader/soup/ResourceLoaderSoup.cpp:68
&gt;&gt;          ResourceResponse response { url, extractMIMETypeFromMediaType(contentTypeString), static_cast&lt;long long&gt;(dataSize), extractCharsetFromMediaType(contentTypeString).toString() };
&gt; 
&gt; Doesn’t extractMIMETypeFromMediaType take a StringView?

No, not at the moment. It could but it seems there is a potential optimization where it returned the String passed in, as-is.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:182
&gt;&gt; +    EXPECT_EQ(String::fromLatin1(&quot;ÅÄÖ&quot;), topPrivatelyControlledDomain(&quot;ÅÄÖ&quot;_s));
&gt; 
&gt; This already was not OK. We should not have any non-ASCII characters in an ASCIILiteral. In fact, we should be checking that at compile time. If we did, this would fail to compile.

Weird, we do have assertions in place already:
```
constexpr ASCIILiteral operator&quot;&quot; _s(const char* characters, size_t n)
{
#if ASSERT_ENABLED
    for (size_t i = 0; i &lt; n; ++i)
        ASSERT_UNDER_CONSTEXPR_CONTEXT(isASCII(characters[i]));
#else
    UNUSED_PARAM(n);
#endif
    return ASCIILiteral::fromLiteralUnsafe(characters);
}
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860164</commentid>
    <comment_count>51</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 16:19:10 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #50)
&gt; Comment on attachment 457209 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457209&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/text/ASCIILiteral.h:73
&gt; &gt;&gt; +        return !a;
&gt; &gt; 
&gt; &gt; This should be:
&gt; &gt; 
&gt; &gt;     return false;
&gt; &gt; 
&gt; &gt; I don’t like checking !a again, when the line just above has already checked it. Or write this:
&gt; &gt; 
&gt; &gt;     if (!a || !b)
&gt; &gt;         return a == b;
&gt; &gt; 
&gt; &gt; I kind of like that one.
&gt; 
&gt; Ok, will change. I think I&apos;ll have to use this though:
&gt; if (!a || !b)
&gt;     return a.characters() == b;
&gt; 
&gt; FYI, I had copied the logic from String&apos;s operator==.
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/text/WTFString.h:81
&gt; &gt;&gt;      WTF_EXPORT_PRIVATE String(const char* characters, unsigned length);
&gt; &gt; 
&gt; &gt; I think that later these should be named String::fromLatin1 too.
&gt; 
&gt; I agree.
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/text/WTFString.h:82
&gt; &gt;&gt;      ALWAYS_INLINE static String fromLatin1(const char* characters) { return String { characters }; }
&gt; &gt; 
&gt; &gt; I still like the idea of adding a fromASCII, but I am not pushing you to do that at this time.
&gt; 
&gt; I don&apos;t fully understand the benefit of the fromASCII(). Sure, we can
&gt; artificially enforce via assertions that the input is ASCII but it won&apos;t
&gt; really help us write a more efficient constructor, will it?
&gt; If so, is it really worth adding yet another way to construct a String?
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/soup/ResourceLoaderSoup.cpp:68
&gt; &gt;&gt;          ResourceResponse response { url, extractMIMETypeFromMediaType(contentTypeString), static_cast&lt;long long&gt;(dataSize), extractCharsetFromMediaType(contentTypeString).toString() };
&gt; &gt; 
&gt; &gt; Doesn’t extractMIMETypeFromMediaType take a StringView?
&gt; 
&gt; No, not at the moment. It could but it seems there is a potential
&gt; optimization where it returned the String passed in, as-is.
&gt; 
&gt; &gt;&gt; Tools/TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:182
&gt; &gt;&gt; +    EXPECT_EQ(String::fromLatin1(&quot;ÅÄÖ&quot;), topPrivatelyControlledDomain(&quot;ÅÄÖ&quot;_s));
&gt; &gt; 
&gt; &gt; This already was not OK. We should not have any non-ASCII characters in an ASCIILiteral. In fact, we should be checking that at compile time. If we did, this would fail to compile.
&gt; 
&gt; Weird, we do have assertions in place already:
&gt; ```
&gt; constexpr ASCIILiteral operator&quot;&quot; _s(const char* characters, size_t n)
&gt; {
&gt; #if ASSERT_ENABLED
&gt;     for (size_t i = 0; i &lt; n; ++i)
&gt;         ASSERT_UNDER_CONSTEXPR_CONTEXT(isASCII(characters[i]));
&gt; #else
&gt;     UNUSED_PARAM(n);
&gt; #endif
&gt;     return ASCIILiteral::fromLiteralUnsafe(characters);
&gt; }
&gt; ```

Oh, the assertion does hit:
ASSERTION FAILED: isASCII(characters[i])
/Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/text/ASCIILiteral.h(88) : WTF::ASCIILiteral WTF::StringLiterals::operator&quot;&quot;_s(const char *, size_t)
worker/0 TestWebKitAPI.PublicSuffix.TopPrivatelyControlledDomain Crashed
Ran 1 tests of 1 with 0 successful
------------------------------
Test suite failed

Crashed

    TestWebKitAPI.PublicSuffix.TopPrivatelyControlledDomain
        ASSERTION FAILED: isASCII(characters[i])
        /Volumes/Data/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/text/ASCIILiteral.h(88) : WTF::ASCIILiteral WTF::StringLiterals::operator&quot;&quot;_s(const char *, size_t)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860165</commentid>
    <comment_count>52</comment_count>
      <attachid>457216</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 16:26:32 -0700</bug_when>
    <thetext>Created attachment 457216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860202</commentid>
    <comment_count>53</comment_count>
      <attachid>457216</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 21:40:22 -0700</bug_when>
    <thetext>Comment on attachment 457216
Patch

Clearing flags on attachment: 457216

Committed r292696 (?): &lt;https://commits.webkit.org/r292696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860203</commentid>
    <comment_count>54</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 21:40:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860206</commentid>
    <comment_count>55</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-10 21:47:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/91546913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860210</commentid>
    <comment_count>56</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-10 22:32:28 -0700</bug_when>
    <thetext>Found 2 new test failures: fast/multicol/client-rects-spanners.html, fast/multicol/span/span-as-immediate-child-generated-content.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860295</commentid>
    <comment_count>57</comment_count>
      <attachid>457209</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-04-11 08:42:21 -0700</bug_when>
    <thetext>Comment on attachment 457209
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/text/WTFString.h:82
&gt;&gt;&gt;      ALWAYS_INLINE static String fromLatin1(const char* characters) { return String { characters }; }
&gt;&gt; 
&gt;&gt; I still like the idea of adding a fromASCII, but I am not pushing you to do that at this time.
&gt; 
&gt; I don&apos;t fully understand the benefit of the fromASCII(). Sure, we can artificially enforce via assertions that the input is ASCII but it won&apos;t really help us write a more efficient constructor, will it?
&gt; If so, is it really worth adding yet another way to construct a String?

Not critical. Maybe we should discuss this in person at some point. I still like the idea and I think it is valuable for two reasons, but I don’t want to write more paragraphs about why. The two reasons are: (1) being explicit about what we intend at each call site, instead of writing fromLatin1 because it &quot;just doesn’t matter it’s always ASCII&quot;, and (2) future-proofing these call sites a little if we want to do experiments with storing UTF-8.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457008</attachid>
            <date>2022-04-07 20:49:55 -0700</date>
            <delta_ts>2022-04-07 21:00:37 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>84636</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZC4uNjQ1NWU4
MWFmMWYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJf
cyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQ
RUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhy
ZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMs
NyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewot
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEo
b3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhy
ZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFz
T25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpA
QCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9u
YWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0
cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2lu
YWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAi
MTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZD
b3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDg2OGNjYmI5ZjMzNC4uZGIyNDY1MjM5Njg2IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZh
dGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBi
b29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURh
dGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9k
ZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBw
ZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Mp
OwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjUuLjdmOTdiY2Qy
NzQzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBA
IC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dl
cmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBh
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0Ui
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0
aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzLi5hNDg3ZTU3ZTlk
MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxk
ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENv
bnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQo
ImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBi
dWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgp
LCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1
aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5s
ZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAx
MjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwog
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNp
dHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFw
cGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdT
dHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJp
bmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRl
cik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywg
IiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVp
bGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVp
bGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJh
YmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3Mp
LCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNl
eWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAi
QiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmlu
Z0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0
aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2Un
LCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAg
ICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7
CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20g
OC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRo
ZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNp
dHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAg
RVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFC
IiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIg
KzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0
cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVp
bGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhl
IFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBw
ZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBz
dHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0
cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAg
LTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsK
ICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsK
ICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVu
ZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxk
ZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAg
YnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWls
ZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEo
Y2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyAr
MjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAg
ICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0
cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRl
ci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEs
MjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1Rf
VFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmco
KSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMi
KSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAg
IGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMy
KTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBh
Y2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxk
ZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIx
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0
cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciBy
ZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApA
QCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwog
ICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUw
YTIyNzEuLmJiMzMxNjViNjY3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBs
U3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0
IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9U
UlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0Iikp
OwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAog
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
LCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCks
ICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0
b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmMuLmI0NDJlNDM2OGMwMyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSAr
NDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3Bl
cmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJp
bmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7
CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBT
dHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3Ry
aW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5n
VmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5n
Q29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5j
cHAKaW5kZXggYzI1MzM4MmQzNGExLi5iYWY0ZDdhY2JlZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVs
bFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwot
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hh
cmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0
aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgp
OwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsK
KyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcg
QEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgp
LmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOwor
ICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8p
OwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2
LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9F
USgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNh
dmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0g
ICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9z
KTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBv
aW50cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4o
KTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1Qo
V1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykK
IAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJ
KCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+T
sSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6
ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNB
bGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXgg
ODM3MDU3MGFhZmE0Li40Y2VlY2E0MDhmNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3Rv
ckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBF
Q1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5n
KCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgw
LCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIp
LCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5w
YXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBh
dGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRo
Q29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVy
eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigp
KTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpA
QCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxB
c1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAg
IGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92
YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRA
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwj
ZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNk
ZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRh
VVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJM
RGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3
d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4
LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAg
CiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsK
ICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZh
bDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3Rv
cjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYp
LCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
MzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAg
CiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVj
dG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3si
a2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9z
IH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBV
UkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtl
eTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9z
IH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZr
ZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwx
In0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTky
MCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJf
cywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVy
bDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVz
dCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJs
MjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMy
NCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsg
Ii8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7
CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/
PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0s
IHsgIiJfcywgInRlc3QiX3MgfSB9IDsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJs
MzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVy
bDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEz
MiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwy
NSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVy
bDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1
MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3Li5hMjJlYjIzY2Ni
ZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkg
Kzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3Rv
ciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwot
ICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5z
ZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5n
IHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3Mp
OworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMi
X3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIu
dmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRl
eCBiOTMzNGQ0NWZiZGQuLjViMjE3MmVjMDBiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmlu
Z0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsK
ICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0
ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmlu
Z0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwg
c3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlz
OEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcg
KzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBT
dHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUo
c3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpz
dHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5n
OwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExp
dGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAg
ICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsK
IAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWls
IGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdu
b3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFy
YW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0
dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBz
dWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Iiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJl
cnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmco
InN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJf
cykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
Ojpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFz
aCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmlu
ZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5n
MS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkp
OwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChX
VEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVD
aGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJp
bmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdi
JyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjLi5hOTk3MTIzNGMzYzIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25U
ZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAog
ICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3Ry
aW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4
ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpO
b25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4
IDllMjBhMzQxZDViMS4uOWUzNWQ5NWJiNTFhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNv
bnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3Qg
U3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQg
Zm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0
YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhl
IHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1v
bml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRl
eCA3NzBiMDcyN2ZkZWYuLjcyM2Q1ODhhYTQ5YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkg
QEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAg
ICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9z
LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsg
bm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJ
UXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJ
Q29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJ
bkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWly
SW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcg
Kzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSki
X3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSki
X3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9t
TGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rpbmcu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcApp
bmRleCAxNDcxOTAwMGRlMWQuLjU2YTU5ZjJkYTllNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAg
VEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBT
ZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJD
b3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6
ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNp
bXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6
OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAog
VEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMy
Y2E3OC4uMGFjOTA0ZGQwZTMxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1
YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5q
cCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50
ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3
LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwu
dWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20u
dGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwu
dWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYw
YW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VR
KFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFz
ZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmco
YmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1w
bGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBs
ZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VC
LmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9z
dCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEo
IsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4i
X3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVz
aERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODcuLmE2MjQwYTM1MzBmMSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAg
LTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAg
ICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5v
cmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3Bp
YyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsg
c2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07Cisg
ICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAg
ICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAg
ICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkg
ewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBl
ZjQxNC4uMWIxZDlmZjBmZTgxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRl
V2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
KSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVm
ZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkp
OwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+
c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkp
OwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVz
dERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZm
ZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZp
bGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFy
c2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMi4uNGQyN2Y0ZmQ0YjU1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
VGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQ
YXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0
ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAi
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVD
MyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmco
dSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwg
dGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5n
IGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEo
ImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNl
cyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tV
UkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlT
dHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8v
aG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwg
Imh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQ
YXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRw
Oi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9z
dC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0
cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNP
LTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERD
LCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hv
c3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVE
MSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5
MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRo
VW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5
U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VU
cmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9E
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZS4uN2ZjN2VmNDE5NGIwIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJh
c2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFi
YXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxk
IHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAg
ICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20g
ZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERh
dGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
V2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3
ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNl
RG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2su
CiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhl
IHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3
OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0
aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVt
b3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8g
T3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7
CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldp
dGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBz
aG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAg
ICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBk
aXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAog
ICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9t
IHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURh
dGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hl
cmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNr
LgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9u
IGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7
CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0
YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBh
dGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9y
ZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmLi5lYTc0YTMwNmI3ODYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBA
IC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHky
KCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9a
ZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0Vmxn
Q0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZN
NzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdP
eS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdw
SVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgi
IgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0Jn
VEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0
eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1P
VWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2
WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAg
IkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElq
bjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkv
aEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRl
cyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZp
Y2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmli
dXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwLi42YWY0ZTg4YTgwMmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2Vu
QW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAg
ICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQ
T1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCBy
ZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Vu
bGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9r
ZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4i
X3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3Rh
cnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5B
bmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0g
U3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRv
a2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6
IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWdu
aW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJp
bmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVu
Z3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
ZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBA
QCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2Vu
U2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRv
cHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxl
bmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNv
dXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygi
ZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykg
OiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcu
ZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZi4uZGJlODAwODg3YzliIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQog
CiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNz
IERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciog
c291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0
aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGly
ZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJ
SUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlM
aXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dh
cCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNv
bnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3Ry
aW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3Ms
IFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlv
bkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0
aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlv
bkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5h
dGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2Ug
ZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJf
cyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpw
YWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0
cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJj
ZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQ
ICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGlu
YXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0
cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAm
JiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291
cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmln
aW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGlu
YXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNh
bWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAg
IEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5h
dGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3
YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIx
MSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJj
ZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1p
c3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAg
ICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhw
ZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9y
aWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8g
V2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1z
YW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhv
dXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTEu
LjE1NzZlMzAzNjY2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5
IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlv
biBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9
XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNw
b25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFs
aXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7
ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfX0sIG1haW5CeXRlcykuc2VyaWFsaXpl
KCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3Qo
Wz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVu
dC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9fSwgY29udGVudFJ1bGVMaXN0
V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVx
dWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIo
KGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxh
c3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWIuLmVl
ZTNlMDI4MTVkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgz
LDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1j
b25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNy
Yz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtd
ID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlk
PSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRp
YyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0
JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFy
IHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChv
cHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRp
YyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZS4uOTA5MmRlMDA0
MjM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ks
IENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcu
Z2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9h
cmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmdd
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0
cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3
ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDIuLmE1ZjdiYmY1
N2I5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmll
d0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRN
TEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAg
ICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQuLmM0M2FlY2QxODllNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAo
dm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3
IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBp
bml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1Mi
X3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWIuLjBm
MmE3YzdkMzhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2Vy
dmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAt
NDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsg
IlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJV
cGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2Nr
ZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vi
c29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9
LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2Vw
dFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5j
bHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAg
IH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0
ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURP
dGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dK
YXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BG
blliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2
TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5
a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmlj
YXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdU
Rk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVp
bnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlq
OFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAi
dnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4
Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1x
eDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZs
NVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAg
ICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0
ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsK
</data>
<flag name="commit-queue"
          id="485475"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457009</attachid>
            <date>2022-04-07 21:00:37 -0700</date>
            <delta_ts>2022-04-07 21:32:11 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>85241</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENv
cGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkLi42NDU1ZTgxYWYxZjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0g
Y3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVm
KCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
U3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewot
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2lu
YWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcg
b3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHko
V1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNv
dW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAg
ICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRD
b3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcg
KzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5n
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZp
bmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBz
dHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAg
ICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0
Li5kYjI0NjUyMzk2ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVT
eXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGlu
Z19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwor
ICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBz
dWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1h
cHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNS4uN2Y5N2JjZDI3NDM3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNU
KFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
QSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50
ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExv
d2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0Ui
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcAppbmRleCBlNzY3MjU4OTU2ZTMuLmE0ODdlNTdlOWQwNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBl
bmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8g
VGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAg
ICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBw
ZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJz
KGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAx
MjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsx
MzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6
c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmlu
ZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0
aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwg
IiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZi
dWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAv
LyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRv
IDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5j
YXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3
ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3
b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVj
ZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBh
Y2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAx
KSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBi
dWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMg
bm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5n
KTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBz
aG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBT
dHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNp
emluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVz
dWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAg
ICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2ln
bmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0
eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmlu
Zyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNp
dHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAg
LTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBF
WFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBh
Y2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAg
ICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAg
ICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0
eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikK
QEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAg
ICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsK
ICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBF
WFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5z
aHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAg
ICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBz
dGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
U3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMi
KTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVu
ZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
U3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVy
MSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIu
YXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0
cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVy
Mik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBi
dWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3Ry
aW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMi
KSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmlu
Zyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVF
KGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MS4uYmIzMzE2NWI2Njc3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApAQCAtNDQw
LDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNXaXRoSWdub3JpbmdBU0NJ
SUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIpOworICAgIFN0cmluZyBz
dHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlIikpOwogICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
dGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7Ci0gICAgQVNTRVJUX1RS
VUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoIiIpLCAiIikpOwor
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW1wdHlT
dHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIx
YmIyYy4uYjQ0MmU0MzY4YzAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBB
dG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0
ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2lu
ZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJp
bmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tp
bmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTEu
LmJhZjRkN2FjYmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRo
RW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3
IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVs
bG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFy
YWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRo
KG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlW
c051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZp
ZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dp
dGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dp
dGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0
ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmll
d0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
Vmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8i
X3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2lu
dHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3Is
ICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJr
aXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29k
ZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50
c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0
ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExl
YWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmll
d0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxv
IikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNv
Y29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5n
KCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3
KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSku
aXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNl
X2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQuLjRjZWVjYTQw
OGY1OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBAIC02MCwxNiArNjAs
MTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFyKQogICAgIEVYUEVD
VF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJsLnByb3RvY29sKCkg
PT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20i
KSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4
YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUo
ISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9ydCgpLnZhbHVlKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNlcigpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIv
aW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRl
eC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1RfVFJVRShrdXJsLmhh
c0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCIp
LCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFn
bWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBzdGF0aWMgVVJMIGNy
ZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyArODAsNDMgQEAgc3Rh
dGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQogVEVTVF9GKFdURl9V
UkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1l
OkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAvaW5k
ZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmls
ZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovL3Vz
ZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9jIl9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5nKQpAQCAt
MzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQub3JnLz8iX3MpOwog
ICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIpLCB0ZXN0VmVjdG9y
MTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVTVF9GKFdURl9VUkws
IFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwgdXJsMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmw0ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
NCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAgIAogICAgIFVSTCB1
cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAg
ICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHt7Imtl
eTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0b3I1Nik7CiAgICAg
CiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5MSIsICJ2YWwxIn0s
IHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwgdXJsMTUgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJs
MTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYge3si
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsKICAgICAKICAgICBV
UkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZhbDIifSwgeyJrZXkz
IiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTEsIHVy
bDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwg
dXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMi
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcsIHVybDE4KSwgdGVz
dFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJM
IHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwg
eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5MSJfcywgIiJfcyB9
LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7
CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Pz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAi
Lz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsK
ICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9
LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAKICAgICBVUkwgdXJs
MjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJs
MjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7
Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9
LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAgICBVUkwgdXJsMjkg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7CiAgICAgVVJMIHVy
bDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9
LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH0g
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwg
dGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0
ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwg
dGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcAppbmRleCAyNTZhOWU0MDYwYzcuLmEyMmViMjNjY2JmNyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVj
dG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAi
azEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0
cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2
MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3Ms
ICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBl
ZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWly
KSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZC4uNWIyMTcy
ZWMwMGI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAK
QEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkK
ICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0
cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiRXhwbGlj
aXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogICAg
IEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJv
bUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3Ry
dWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogCiAgICAgU3Ry
aW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAgICAgRVhQRUNU
X0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkp
OwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0K
IAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNUKFdURiwgU3Ry
aW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3RyaW5nOwogICAg
IFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0
ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5z
dGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFj
dGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgVEVTVChX
VEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsK
ICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBFQ1RfVFJVRShy
ZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJV
RShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsK
IH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkz
LDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0
eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKLSAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9E
b3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIiku
dG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJs
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxlYWRpbmcganVu
awotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8v
IHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJs
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcganVuaywgYnV0
IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluY29uc2lz
dGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAvLyBpdCB3aWxs
IHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9yIG9rLgotICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEo
MS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJf
cykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNl
IG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmluaXR5IgotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVz
IHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFM
U0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogewotICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiKS5pczhC
aXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAy
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Zygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhh
c0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJU
ZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJTVCJfcywgMikp
OwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmlzOEJpdCgp
KTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4Qml0KCkpOwpA
QCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkK
ICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVU
RjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi
5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9Iiku
aGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmco
IlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikp
OwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0cmluZyBzdHJp
bmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExp
dGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBF
Q1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5nMS5pbXBsKCkt
Pmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNo
KQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsKLSAgICBTdHJp
bmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4
Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRl
eCBmZTVjZTY5NDkwZmMuLmE5OTcxMjM0YzNjMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcg
KzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykK
ICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJM
RmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJ
SVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVND
SUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVND
SUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9u
QVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0
ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxLi45ZTM1ZDk1
YmI1MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
VGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZp
c2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdl
ZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEo
IlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRh
KCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJp
bmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4
dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZi4uNzIzZDU4
OGFhNDljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRU
UEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFkZXJGaWVs
ZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/XHQgXCIi
X3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IG5v
bkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJbkNv
bW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSB9LAor
ICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAgICAgU3Ry
aW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAgICAgIFN0
cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9KTsKICAg
ICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhUVFBIZWFk
ZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6IFwiXGFc
IiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsg
ZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90ZSksCiAg
ICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUxZC4uNTZh
NTlmMmRhOWU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9L
ZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRB
bmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAg
ICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5j
b2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygi
V2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6Oktl
eWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVT
dHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXRO
b25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4Li4wYWM5MDRkZDBlMzEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXgu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXgu
Y3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJl
eGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1
dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBF
WFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3
LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAu
MC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28u
dWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsi
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIx
MjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2Rm
LnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBF
WFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNk
ZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwg
dXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJs
b2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9j
YWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZy
b21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5Yi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcx
ZWZlYWNjZmI4Ny4uYTYyNDBhMzUzMGYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRFU1Qo
UHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29wZSwg
c2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAg
ICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7Ci0g
ICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAgICAg
cmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5zY29w
ZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9waWMg
PSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5pbnNl
cnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0Li4xYjFkOWZmMGZlODEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIu
Y3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9G
KEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdG
aWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVu
dHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0
aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1
Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRl
bnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0
ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxM
KGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVm
ZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0
ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1
ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwg
Y3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5j
cHAKaW5kZXggZGM0ZTEyODA4OTAyLi40ZDI3ZjRmZDRiNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2Rpbmcu
Y3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3Qs
IFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9z
dD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAi
JUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYl
RjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9n
YXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4x
IikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tV
UkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAi
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1
ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVy
eSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5
Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3Qv
P3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0
aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
fSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3Qs
IFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVu
cmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9z
dC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQs
IHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwog
Ci0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOwor
ICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5n
IHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30p
OwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRz
KSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygp
LCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwo
bWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7
IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0
aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3Qv
cGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0K
aW5kZXggNzUzMjgxODRjNGNlLi43ZmM3ZWY0MTk0YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJU
ZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmln
aW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBp
bmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRh
YmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJh
c2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
YnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRp
b24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZy
b20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBO
U1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGly
ZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tl
cj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNl
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBU
RVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJh
c2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVk
IGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQg
YmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURh
dGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlv
biwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQg
dGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQs
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2Vz
Tm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEg
ZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0
aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRh
YmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJX
aXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAx
MWI5ZDY4NjU0M2YuLmVhNzRhMzA2Yjc4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRh
aW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2
cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAg
ICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMv
VmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZn
ZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2
OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAK
ICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NR
RCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0x
NzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkK
ICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQx
eGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20y
cjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2
MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhi
eEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3Yx
dDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNv
ZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNk
NTI0ODAuLjZhZjRlODhhODAyZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3
IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9r
ZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBF
Q1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCBy
ZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0
MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0
aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBz
dGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcg
QEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tl
blNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgp
LCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9z
ZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3Ry
aW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0
X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5m
aW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25Vbmxp
bmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1Bh
cnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZl
Y3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXpl
KCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25f
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0
cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5k
ZXggNWJjZWE4MTA5M2NmLi5kYmU4MDA4ODdjOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3Jp
Z2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Qg
OiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChj
b25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFy
KiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3Jp
Z2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBB
U0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQ
LCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZl
clNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNl
SGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9o
dG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQo
IkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAg
ICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNv
dXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsK
KyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ki
X3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRp
b25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywg
InRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGlu
YXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhk
ZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3Rp
bmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBk
ZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBk
ZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdU
Rk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIg
c2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9u
c2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0Mjcs
OCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJj
ZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9j
ZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNl
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJj
ZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQ
LCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwg
InNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25D
T0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09
ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGlu
YXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hv
dWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291
cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
Il9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
NCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
eyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAi
X3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxk
IHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1
c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhl
IHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1
c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJl
cXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVP
cmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1u
b25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMS4uMTU3NmUzMDM2NjZmIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
ICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAg
ICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0g
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUi
LCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSJfcywgInRl
eHQvaHRtbCJfcyB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsK
LSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29u
dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RX
b3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0Il9zIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6
ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRU
UFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVl
c3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgi
c3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYi4uZWVlM2UwMjgxNWRlIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVb
XSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJh
bWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFt
ZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZy
YW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3Jp
cHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07
IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4i
Ci0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlV
UkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlV
UkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlLi45MDkyZGUwMDQyMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAg
LTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJM
KQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAg
TlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVy
YWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQu
b3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJp
bmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAg
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3Rl
VVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMi4uYTVmN2JiZjU3YjliIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBAIC00Niw3
ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAgICAgRE9N
SFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtkb2N1
bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4dCA9IFth
bmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJr
aXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCmluZGV4
IDNhMmZhZGVhNmEwNC4uYzQzYWVjZDE4OWU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
Kil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAog
CiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZy
YW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNz
YWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7
CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5Yi4uMGYyYTdjN2QzOGIzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBD
b25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQi
IH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAg
ICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3Qp
IH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAg
ICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMt
V2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAg
ICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8p
LCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMz
LDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAg
InE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZS
SXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3
NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZ
N0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1pr
N21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJf
cyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVt
RW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmlj
YXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVz
dFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lH
SEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5
RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNw
U2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZl
IgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJi
ZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRl
S2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RG
TW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwo=
</data>
<flag name="commit-queue"
          id="485484"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457010</attachid>
            <date>2022-04-07 21:04:12 -0700</date>
            <delta_ts>2022-04-07 21:17:55 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>85743</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmlu
ZGV4IDRkNjQ3NTA2OGMzZC4uNjQ1NWU4MWFmMWYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVS
ZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1
LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcg
b3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAg
RVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChv
cmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJW
U3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7
IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3Jp
Z2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7
CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJp
bmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRp
b25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIz
NCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RS
VUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkt
PmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2lu
YWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3Zl
KG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7
CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQog
ewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEy
MzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsK
ICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9F
UShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMzNC4uZGIyNDY1MjM5
Njg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApA
QCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBp
bmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBG
aWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19m
aWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAg
ICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0
YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRl
eCA5ZTZkYzlkMjUzMjUuLjdmOTdiY2QyNzQzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51
bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExv
d2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRl
Z2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwg
MikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXgg
ZTc2NzI1ODk1NmUzLi5hNDg3ZTU3ZTlkMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRl
cik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVy
cygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcj
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIg
cmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3Rl
cnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVy
MS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJj
ZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAg
ICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBl
Y3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3Rl
ZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5
ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEp
LCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVy
ZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFu
ZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwg
YnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
KSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
X3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0
IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBm
aXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVp
bGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwg
IkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3Mp
LCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVy
KTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBl
bmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3Ry
aW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2lu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2Vk
LgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0
cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRv
U3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5z
aHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0
eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIu
Y2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
LmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBj
aGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0
MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkp
CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBF
WFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVz
dWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBj
b250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBh
Y2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAg
ICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5h
cHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVy
LmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBz
dHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUg
KzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5h
cHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNU
X0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhV
LCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njci
LCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxk
ZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwog
ICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1w
dHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8
TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsK
ICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0g
U3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVp
bGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwog
ICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIz
IikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2
Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIp
ICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9T
dHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
YnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxk
ZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAg
YnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNo
b3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzEuLmJiMzMxNjViNjY3NyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0
IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVt
cHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsK
LSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0
IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIp
KTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dp
dGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRf
VFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIi
KSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmMuLmI0NDJl
NDM2OGMwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0
cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBh
dG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVND
SUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5n
VmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9
OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAg
ICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExLi5iYWY0ZDdhY2Jl
ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxs
KQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcg
PSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygi
aGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAg
ICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAK
ICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykp
OwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAg
IGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJh
Y3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVy
cyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVy
cy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5
KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMp
CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5
KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0
aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAg
ICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBT
dHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1Zp
ZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3
SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAg
IGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2Rl
UG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAg
U3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBT
dHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9
IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAg
LTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJh
aWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJ
KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFT
Q0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0Fs
bEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5p
c0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgw
IikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhl
bGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmlu
ZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3
KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9G
QUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUko
KSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0
IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFhZmE0Li40Y2VlY2E0MDhmNTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1Rf
RihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJs
LmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwg
dHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9z
dCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJf
cyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0
KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5k
ZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2Vy
bmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJf
cyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwi
X3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyks
IGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZh
bCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElk
ZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFn
bWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBr
dXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVND
SUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3Jl
YXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90
b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNl
cm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92
YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3
d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZp
bGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8v
YSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNz
d29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8v
d3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAK
IFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMs
NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAg
IFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJs
MiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5
MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAK
ICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1
NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1
cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12
YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAi
dmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQp
LCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFs
MSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3Mp
OwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkz
PXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTEx
MiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RW
ZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5
MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZh
bDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4
KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7Imtl
eTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2
YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJf
cywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIi
X3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAg
IFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAg
ICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRl
c3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywg
InRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAg
VVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsK
ICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMy
NCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAi
dGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
MywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAi
dGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywg
IiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywg
dXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVz
dCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9IDsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3Iy
OTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMx
MzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3Iy
NTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXgg
MjU2YTllNDA2MGM3Li5hMjJlYjIzY2NiZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFt
YmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJp
bmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIi
IH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAg
IG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOwor
ICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1h
cChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5n
IHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQuLjViMjE3MmVjMDBiNyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyAr
NDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNU
X0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0
ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVj
dGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJV
RShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlh
QVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50
YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdG
cm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4o
IlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBF
Q1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9U
UlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJT
dHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RG
LCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dp
dGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1w
dHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFy
YWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8i
X3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChu
dWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRz
V2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdO
dW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5n
U3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0
cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09
IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1Qo
V1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNU
KFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIw
IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0Rv
dWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykp
OwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
VFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
eDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlm
IHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50
b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9r
KSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNU
X1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFs
c2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGgg
dG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBp
ZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEo
MS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5n
KCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3Mp
LnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJl
cnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAK
ICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJu
YW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0K
IAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIp
LmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5p
czhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFz
SW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVz
dCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShT
dHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyAr
MzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJp
bmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwg
MSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
KCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVT
VChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxh
dGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsK
ICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0
cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBA
IC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChX
VEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEo
ImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShz
dHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAg
ICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5
MGZjLi5hOTk3MTIzNGMzYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBh
dHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEs
ICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7Cisg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVu
dEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAg
ICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0
ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5T
dGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMS4uOWUzNWQ5NWJiNTFhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
QEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJU
aGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3Ig
dGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEg
dGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYuLjcyM2Q1ODhhYTQ5YyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVs
ZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikK
ICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAg
ICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1l
bnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0g
ICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3Ry
aW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxh
dGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21M
YXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hv
dWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBh
cnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAg
ICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUg
fSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAg
IAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQuLjU2YTU5ZjJkYTllNSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5n
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rpbmcu
Y3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91Ymxl
KQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywg
JldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7
CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6
OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJp
bmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdS
ZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNT
dWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OC4uMGFjOTA0ZGQwZTMxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3
LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4
MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmco
dSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0
cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50
ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28u
dWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0
LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpm
MGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9z
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0
cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAg
ICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5n
KGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TD
tiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XD
hMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLD
hcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODcu
LmE2MjQwYTM1MzBmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFz
ZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVj
b3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29w
ZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25w
cmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAg
cmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3Bp
YyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJl
Y29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNC4uMWIxZDlmZjBmZTgxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMs
NyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9z
KSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3Rp
bmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVu
dHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkg
PT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUo
KSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhD
b250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRj
NGUxMjgwODkwMi4uNGQyN2Y0ZmQ0YjU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5
LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29k
aW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of
8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5
RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThE
IyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsK
IAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQ
QUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8v
aG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGgl
MjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIw
c3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGlu
MSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30p
OwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUx
LDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29k
aW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQs
IHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6
VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRl
eHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0
cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVj
a1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5
MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
cGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9z
dC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmco
IndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMl
OUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlD
JUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4
MTg0YzRjZS4uN2ZjN2VmNDE5NGIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAt
OTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8v
IEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24g
ZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCBy
ZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0
b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0g
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmlu
Zyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9y
eVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0
Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwg
RGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4g
YWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBz
dGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0
aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndl
YlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldl
YlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNl
VHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJf
cywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFz
ZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQog
ICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBP
cmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQg
ZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpj
cmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAt
MjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAg
ICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRh
YmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1h
dGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQog
ICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRo
YXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUg
dGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBO
U1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGly
ZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tl
cj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNl
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNm
Li5lYTc0YTMwNmI3ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lk
ZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJi
dTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3
b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIK
ICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZu
WXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsK
KyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5n
IHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJ
akFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3
IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpo
b3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRu
WGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVL
SlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9o
QjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXEx
Q3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAK
ICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0
ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29k
ZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwLi42YWY0
ZTg4YTgwMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMg
dm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1Bh
cnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3Ry
bnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6
ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBT
dHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNv
dXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBr
ZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygi
c291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmth
YmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1
ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBr
ZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1
ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2
b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFy
dHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQu
c2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2Vu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBz
aWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNl
X3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJl
cXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0
YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2Vu
QW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNl
NjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRl
czp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkg
PT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tl
bl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVy
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2Vj
cmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tl
bl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgn
IicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEw
OTNjZi4uZGJlODAwODg3YzliIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAg
LTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJO
YXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wg
eyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5v
LCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciog
c291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVP
cmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RT
d2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJ
TGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFs
IGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3Jp
Z2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAg
ICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAg
ICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsK
ICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNv
dXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VD
T0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsK
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwi
X3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25D
T09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVAp
Ci0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25I
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25D
T0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3Rp
bmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6
OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBI
VFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGlj
IHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25z
dCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0g
cHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBh
ZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2Ft
ZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUt
Y29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdp
biIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVp
cmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0g
c291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1j
b3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9
PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NP
cmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8
fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWly
ZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1
c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3Vy
Y2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVk
aXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBk
b2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5X
aXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRp
cmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAu
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsg
fSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0
aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQppbmRleCBjODE3MjE4NGEwYTEuLjE1NzZlMzAzNjY2ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRS
dWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2Vy
dmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRt
bCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3Mg
fX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVj
dGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIs
ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0
KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5k
KEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlw
dCJfcyB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9
XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwg
ImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwg
ZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5t
bQppbmRleCBmZGQ2NzA4NjgzZWIuLmVlZTNlMDI4MTVkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+
PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4i
OwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRG
cmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9p
ZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0
bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5
OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4i
OworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4
IGE4NGRhNWVhMmYwZS4uOTA5MmRlMDA0MjM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAx
LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250
ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwg
PSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2Fy
ZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3Ry
aW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAg
ICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRl
eCBjMTdhNjI4NTcxZDIuLmE1ZjdiYmY1N2I5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JF
bGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50
IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZd
OwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwg
U3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZh
MDQuLmM0M2FlY2QxODllNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gu
bW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1l
CiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RG
aW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5t
bQppbmRleCAyOTQ5MDI1ZjcwOWIuLjBmMmE3YzdkMzhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6
d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9u
SGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25z
ZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAg
ICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdl
YlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAg
ICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25u
ZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1B
Y2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2Vy
aWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShj
b25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rv
cjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJr
SmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0Igog
ICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdS
c2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1
QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4
TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAog
ICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0
aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02
OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5
KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZB
Mk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5P
T1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpT
YW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpm
VThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRG
ZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2
NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29k
ZWRQcml2YXRlS2V5KTsK
</data>
<flag name="commit-queue"
          id="485478"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457014</attachid>
            <date>2022-04-07 21:17:55 -0700</date>
            <delta_ts>2022-04-07 22:06:56 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>88632</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkLi5iOTI0ZGFkM2IyN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
LmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNlc3Npb246
OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBhYmlsaXRp
ZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJO
b3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIl9zKTsK
ICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2YuLmRiOTdmZjBmYTI5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2Fw
YWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAg
ICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5h
bWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0
cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsK
ICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2Vi
RHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29u
c3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2Vy
QmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9W
RVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJC
aW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZF
UlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2Vy
QXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2Fw
YWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJp
dmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2EuLmRjOTFm
YjNjYjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2Vydmlj
ZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQo
KQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkK
IHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0
Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFt
ZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0g
ZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBi
b29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
UGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVz
LCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGll
cy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07
CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRPYmpl
Y3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkLi42NDU1
ZTgxYWYxZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBF
WFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJV
RShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwo
KS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01
Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAK
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7
Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsg
IjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9F
UShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5o
YXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7
CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRp
b25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFs
U3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9
OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBF
Q1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmln
aW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
Q29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJl
ZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3Rl
bS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0Li5kYjI0NjUyMzk2ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJp
dmF0ZToKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAg
IGJvb2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxl
RGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVN
b2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1h
cHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vz
cyk7CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNS4uN2Y5N2Jj
ZDI3NDM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
QEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdl
cikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExv
d2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFD
RSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTMuLmE0ODdlNTdl
OWQwNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0
Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVp
bGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAg
IGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAw
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVp
bGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAg
YnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIx
Lmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcj
MDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7
CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBh
Y2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
QXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmlu
Z1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0
cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWls
ZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2Un
LCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAi
Iik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBi
dWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
ImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJf
cyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxs
c2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiks
ICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJC
IiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3Ry
aW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhp
c3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAn
ZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAg
ICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIi
KTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJv
bSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYg
dGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJj
ZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBh
Y2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAg
ICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsK
ICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
QUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5Miwz
MiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAg
IFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRv
U3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBi
dWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkg
aW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0
aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5h
cHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiks
IHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwg
c3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsK
IH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpA
QCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgp
OwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
OwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCks
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVp
bGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1
aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0
cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
KSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
Q0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3
ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3Rl
cnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMj
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwog
ICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0
aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRv
U3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWls
ZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMx
MSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVD
VF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFi
YyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAg
ICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHko
MzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNh
cGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
U3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVp
bGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRl
cjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0g
U3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVy
IHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwog
CkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5n
KQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7
CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0
eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJi
ZTBhMjI3MS4uYmIzMzE2NWI2Njc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0lt
cGxTdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRl
c3QgdEVTVCIpOworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJU
X1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQi
KSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICJ0ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwog
CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShTdHJpbmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxT
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmco
KSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z09wZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIyYy4uYjQ0MmU0MzY4YzAzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDEx
ICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdP
cGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0
cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmci
KTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAg
IFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBz
dHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJp
bmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJp
bmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcAppbmRleCBjMjUzMzgyZDM0YTEuLmJhZjRkN2FjYmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBu
dWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7
Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBz
dHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhD
aGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRF
U1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVE
KCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikp
OworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBF
Q1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEs
NyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7
CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5
KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7
CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVs
byk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0x
NTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNU
X0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0g
c2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsK
LSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQi
X3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2Rl
UG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdp
bigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJz
KQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUo
U3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVND
SUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLw
n5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5n
Ojpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShT
dHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5p
c0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRl
eCA4MzcwNTcwYWFmYTQuLjRjZWVjYTQwOGY1OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVj
dG9yQ29uc3RDaGFyKQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVY
UEVDVF9FUShrdXJsLnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJp
bmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgw
ODAsIGt1cmwucG9ydCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1l
IiksIGt1cmwudXNlcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJs
LnBhc3N3b3JkKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwu
cGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBh
dGhDb21wb25lbnQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1
ZXJ5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVu
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsK
ICAgICBFWFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOwogfQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcp
CkBAIC04MCw0MyArODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVy
bEFzU3RyaW5nKQogVEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAg
ICAgYXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29y
ZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4
MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJh
c2RmOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERh
dGFVUklTdHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBV
UkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwo
Ind3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDEsIHVybDIpLCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICsz
ODgsNjcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAg
ICAKICAgICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3Mp
OwogICAgIFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVj
dG9yMzQpOwogICAgIAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJs
NiksIHRlc3RWZWN0b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwx
NCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEzMTQge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3Ms
ICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAg
ICAKICAgICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUx
NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RW
ZWN0b3IxNTE2KTsKICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7
eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIi
X3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAg
IFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEm
a2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFs
MSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIi
X3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTcsIHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwx
OSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
OTIwIHsgeyAia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFs
MyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwg
dXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0
ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAi
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1
cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRl
c3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3Iy
MzI0KTsKICAgICAKICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsg
eyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4
KTsKICAgICAKICAgICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3Mg
fSwgeyAiIl9zLCAidGVzdCJfcyB9IH0gOwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1
cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwg
dXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8i
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
MTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVy
bDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwg
dXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzcuLmEyMmViMjNj
Y2JmNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUs
OSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVj
dG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7
Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJp
bmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJf
cyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2
MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFp
ci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmlu
ZGV4IGI5MzM0ZDQ1ZmJkZC4uNWIyMTcyZWMwMGI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3Ry
aW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBj
b25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkp
OwogICAgIEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zy
b21MaXRlcmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlh
QVNDSUkuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVj
dGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRl
cmFsVmlhQVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBM
aXRlcmFsIl9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3Ry
aW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwi
LCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwu
aXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmlu
Z0Zyb21MaXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyks
IHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAs
NyArNzAsNyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAg
IFN0cmluZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlT
dHJpbmcoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAg
U3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJV
RShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBF
Q1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBA
IC0yMzEsNyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6
OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJp
bmc7CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4
cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRo
TGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkK
ICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVY
UEVDVF9GQUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2sp
OwogCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZh
aWwgaWYgd2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEi
KS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2Vz
Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IiAxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBp
Z25vcmUgdHJhaWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1
YXJhbnRlZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byBy
ZXR1cm4gZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0Rv
dWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7
CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVz
IHN1Y2ggYXMgImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
KS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9E
b3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3Vi
bGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVt
YmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
bmFuIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3Mp
LnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFz
SW5maXhTdGFydGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVD
VF9UUlVFKFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zygic3QiKSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0
Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9z
LCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoInN0Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJv
bVVURjgoIuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0
cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRG
OCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAx
KSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
VGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOwor
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJp
bmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdI
YXNoKQogewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3Ry
aW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJp
bmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2go
KSk7CiAgICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNU
KFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFs
VUNoYXJBcnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0
cmluZzEoImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAg
IEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywg
J2InIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29u
dGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmMuLmE5OTcxMjM0YzNjMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lv
blRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9z
LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwog
CiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRl
cm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhT
dHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJc
XHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5k
ZXggOWUyMGEzNDFkNWIxLi45ZTM1ZDk1YmI1MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAot
Y29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4
dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWRE
YXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0
aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgi
VGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxl
TW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmlu
ZGV4IDc3MGIwNzI3ZmRlZi4uNzIzZDU4OGFhNDljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQs
OSBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywK
ICAgICAgICAgImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSki
X3MsCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcg
eyBub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVND
SUlRdW90ZWRQYWlySW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVND
SUlDb21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFp
ckluQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBh
aXJJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUs
NyArOTUsNyBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxh
KSJfcywKICAgICAgICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMp
KSJfcywKLSAgICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZy
b21MYXRpbjEoZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGlu
Zy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
CmluZGV4IDE0NzE5MDAwZGUxZC4uNTZhNTlmMmRhOWU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBA
QCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldl
YkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVy
OjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0
U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29y
ZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQog
CiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0
MzJjYTc4Li4wYWM5MDRkZDBlMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0Yo
UHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9F
UShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4
LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29t
LnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3
d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5i
bC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNv
bS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82
NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0t
YXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0
LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmlu
ZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFt
UGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJT
VUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxo
b3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGlu
MSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4u
LiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4Ny4uYTYyNDBhMzUzMGYxIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApA
QCAtNDMyLDggKzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAg
ICAgICAgICBzbnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0
Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRv
cGljKSwgInRvcGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcg
eyBzY29wZSB9OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsK
KyAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7Cisg
ICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAg
ICAgICAgICAgICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0
KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVl
MGVmNDE0Li4xYjFkOWZmMGZlODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVh
dGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmls
ZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRz
T2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChi
dWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgo
KSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVy
LT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0
ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1
ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtl
Q29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5
RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQ
YXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyLi40ZDI3ZjRmZDRi
NTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwo
dXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAi
JUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9
LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rp
bmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGlu
MSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3Bh
Y2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJp
bmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVj
a1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0
dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEo
U3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJ
U08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4
REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8v
aG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIw
JUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQx
JTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdp
dGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1w
dHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlLi43ZmM3ZWY0MTk0YjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRh
YmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91
bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMK
ICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJv
bSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVh
dGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNr
ZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlP
cmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQz
LDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJh
c2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlz
ay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0
aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpj
cmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAt
MTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVs
ZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCBy
ZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAv
LyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQz
KTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2lu
V2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9u
IHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUK
ICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9u
IGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVk
CiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZy
b20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0g
RmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7Cisg
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgp
OwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJf
cywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
RGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3
aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRp
c2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRp
b24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rv
cnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5n
KTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBE
YXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQu
b3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2YuLmVhNzRhMzA2Yjc4NiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
QEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0
eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NC
b1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRW
bGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNY
Rk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJo
Z095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhC
Z3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRl
KCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURD
QmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50
aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4
bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09H
ZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAg
ICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0Vk
SWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJt
SS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5
dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRp
ZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODAuLjZhZjRlODhhODAyZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9r
ZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAg
ICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwg
IlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCks
IHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
dW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2Vu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tl
biJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBz
dGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tl
bkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcg
PSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0g
VG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIp
IDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNp
Z25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0
cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5s
ZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3
IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9r
ZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBh
ZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkg
bGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6
U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5n
KCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmlu
Z1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9z
KSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmLi5kYmU4MDA4ODdjOWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1Ap
CiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xh
c3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFy
KiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRl
c3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRp
YyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFT
Q0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJ
SUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RT
d2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBT
dHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQot
ICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJf
cywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0
aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9w
ZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGlu
YXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0
aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25I
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3Rp
bmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25z
ZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVw
Il9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6
OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpI
dHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAg
ICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29s
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5n
ZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291
cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNP
RVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0
aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAh
c3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQ
ICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9y
aWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0
aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAi
c2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAg
ICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3Rp
bmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0
U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIs
MjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291
cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMg
bWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewog
ICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBl
eHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUt
b3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAv
LyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09Q
PXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMs
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0
aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
blRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5k
Q09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChX
S1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBh
MS4uZjQ3MGU2ZWNhNmM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1
LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0
aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3Qo
Wz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJl
c3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJp
YWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uo
eyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlh
bGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNj
cmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7
CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJD
b250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1
bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBs
YXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0
cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJj
ZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6
ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4Njgz
ZWIuLmVlZTNlMDI4MTVkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpA
QCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
ewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJh
bWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJG
cmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZy
YW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsK
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBl
PSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25z
dCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAK
IHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZS4uOTA5
MmRlMDA0MjM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250
ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRM
ZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdl
YlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBh
c3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVT
dHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJf
cyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5
TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDIuLmE1
ZjdiYmY1N2I5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dl
YlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
V2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAo
RE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJh
Il07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRl
eHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
Q3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQuLmM0M2FlY2QxODllNyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcg
QEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3
ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVz
c2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1Zjcw
OWIuLjBmMmE3YzdkMzhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5t
bQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07
CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAg
ICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlv
biIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3
ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9z
LCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFk
ZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tl
dEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25z
ZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikp
OwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0
dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJ
VGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAg
ICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxr
TzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2
alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENl
cnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0
dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVj
dG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJR
OGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIK
ICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNM
Z05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdD
STNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpL
MEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3Mp
OwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVk
UHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsK
</data>
<flag name="commit-queue"
          id="485487"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457015</attachid>
            <date>2022-04-07 21:43:04 -0700</date>
            <delta_ts>2022-04-07 22:01:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>106372</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkLi5iOTI0ZGFkM2IyN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
LmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNlc3Npb246
OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBhYmlsaXRp
ZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJO
b3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIl9zKTsK
ICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVy
U2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhLi5iMmM5ZWU1NTgzYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JD
b21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1f
c2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQg
YmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFz
aCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0
LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJv
Y2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJ
ZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFu
IGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046
Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVz
ID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNh
cGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
YWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVz
IGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFy
Z3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9
IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICgh
cmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxp
dGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAg
ICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4y
LiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0
dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4g
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBA
QCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0
aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmly
c3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxp
dGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRj
aCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8g
NS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0
byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmls
aXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmls
aXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRp
ZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3
ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNz
Q2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRj
aGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3
ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNz
aW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9u
CiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQs
IFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2
ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgx
OSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNv
bm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAx
LDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0
JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlv
biA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicg
aXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24i
X3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0
cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0
ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVs
bCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBv
ciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tl
eUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAo
c3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1
YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFj
dGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9
CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBw
cm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBj
YXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0g
YWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtl
eSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAg
ICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rp
b24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
dmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVj
ayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRl
bS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNp
Z25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicg
aXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRp
b24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUt
PmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0
LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAg
ICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmpl
Y3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBp
biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9y
aWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25J
dGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJw
b2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQg
aW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
b2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9u
LCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsK
ICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7
CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHBy
b2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYg
YWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJf
cykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5U
X01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBm
b3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAg
ICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBp
ZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIp
CiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlz
IGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAt
MjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQ
b2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0
aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0g
YWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1
ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdi
dXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNz
aW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZh
bHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZh
bHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBB
Y3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJk
ZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJh
bmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewot
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVs
dGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9u
Il9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3
ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0
YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAg
IGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlO
KTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlv
biIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRl
ciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVs
dGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046
Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFs
dWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMg
bm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBz
ZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0
ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIp
CiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAg
ICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
cG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52
YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3Bv
aW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFs
aWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3
ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJ
bnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNl
cXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9u
U2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBp
bnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZh
bGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGlu
IGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAg
ICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBz
ZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1
dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0
U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2Ug
dHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0
eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1
dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2lu
dGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7
CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
dHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBh
Y3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRl
bXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGlu
dmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShT
ZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1z
TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdl
dChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMg
bm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBh
Y3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJh
bWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdh
Y3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3
Zi4uZGI5N2ZmMGZhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2
ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmls
aXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0
aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxh
dGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRv
d1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEw
LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25z
dCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFi
aWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBX
RUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdF
QktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24i
X3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2
NzZhYjJjYS4uZGM5MWZiM2NiNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9X
ZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2
ZXJTZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1D
YXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2Fw
YWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNl
dFdpbmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1
LDcgKzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxp
dHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNo
ZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAg
IGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAg
IGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJp
bGl0aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0
NzUwNjhjM2QuLjY0NTVlODFhZjFmMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZT
dHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3Jp
Z2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3
IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9U
UlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwu
aW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1v
dmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hh
dmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5h
bCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7
CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMs
NyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5n
VHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJp
bmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdp
bmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
TW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEy
MzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5h
bCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBT
dHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07
CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2lu
YWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQuLmRiMjQ2NTIzOTY4NiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3
ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2lu
Z0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVE
YXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3Rl
bTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyks
IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVD
VF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5
ZDI1MzI1Li43Zjk3YmNkMjc0MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hleE51bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGV4TnVtYmVyLmNwcApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
YSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2Up
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlciwgMiwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
YSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2Vy
LCA0LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChieXRlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5
NTZlMy4uYTQ4N2U1N2U5ZDA0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVu
ZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2gi
LCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcj
Jyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1
aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3Ry
aW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENo
YXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5k
KCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFla
Il9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRl
cjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJp
bmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcu
Y19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRp
Y0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBi
dWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
KSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsK
ICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2Qi
LCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
bWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIp
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBj
b252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3Qg
Zml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5p
czhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIu
bGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwg
YnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3Ry
aW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRo
ZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhC
aXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVu
Z3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVs
bHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBi
dWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAg
fQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBs
KCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBi
dWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsK
ICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4K
ICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEw
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJf
cyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWls
ZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEo
c3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4K
ICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VR
KGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3Mp
LCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
X3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBv
ZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsK
ICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7
CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVD
VF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0
eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIw
MTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUs
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRl
ci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAog
ICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBF
Q1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxk
ZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1
YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4o
MCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygi
YWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJl
c2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWls
ZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1
aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWls
ZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAh
PSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRv
bVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIu
cmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJp
bmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5j
cHAKaW5kZXggYTc2MmJlMGEyMjcxLi5iYjMzMTY1YjY2NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNU
KFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAog
VEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9z
KTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
dGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAg
ICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5n
KCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjLi5iNDQyZTQzNjhjMDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVT
VChXVEYsIFN0cmluZ09wZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsK
KyAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmlu
ZygiQXRvbVN0cmluZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJh
bCJfcyB9OwogCi0gICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07
CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBT
dHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNU
X0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGMyNTMzODJkMzRhMS4uYmFmNGQ3YWNiZWUzIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyAr
NDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAg
ICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5n
Vmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7
CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5n
VmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQ
RUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0
LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAg
ICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0
cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5n
KCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxs
KCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApA
QCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVV
bml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5n
IGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmll
dyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQ
b2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9y
cykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9p
bnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0
ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3
ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmll
dyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRD
b2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAg
Kzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0
Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJ
SSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29h
Il9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6
OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAg
IEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+
KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNC4uNTUxN2FmNWQ3NDMxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VS
TCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlk
KCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0
cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJs
Lmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAg
ICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBh
c3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4
Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwi
KSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9
dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3Mp
LCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJs
LnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3Vy
bC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxh
c3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBr
dXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVy
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVu
dGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFn
bWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJh
bCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChB
U0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0
QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBh
c3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4
MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJo
dHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5k
ZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxl
LmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ev
Yi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2Ii
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3
LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFz
ZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0Yo
V1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVT
VF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJs
MSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFs
MSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJM
IHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7
CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZh
bDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywg
dXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7
CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0
IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZl
Y3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZh
bDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUs
IHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBV
UkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtl
eTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJr
ZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTEx
Mik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0s
IHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7
IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAg
CiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9
dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9
LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwx
Il9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJs
MjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVy
bDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIg
e3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9z
IH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwy
MyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJM
IHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwg
Ij0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0
KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwg
eyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwg
dGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsg
eyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAg
ICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJf
cyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
MTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAg
IAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJf
cyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8i
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2
MGM3Li5hMjJlYjIzY2NiZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkK
IFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEi
IH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAg
IG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQo
ImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5z
ZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsm
XSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAg
ICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RG
U3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQuLjViMjE3MmVjMDBiNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAg
VEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxl
bigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50
YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdG
cm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBs
aWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJh
bCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBM
aXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0
cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmlu
Z0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0
ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5n
IExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdB
U0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZz
TnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcg
PSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJo
ZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5n
KSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0
eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRN
aW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+
IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6
ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJp
bmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3Ry
aW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgm
b2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3Vi
bGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVY
UEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7
CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4
MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZv
aykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBs
ZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2sp
OwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJv
ayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdo
aWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFs
c28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBz
cGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJp
bmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5m
aW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBw
YXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChX
VEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
ZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUi
X3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRl
Il9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFy
dGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFz
SW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBA
IFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWb
vSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0g
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgi
VGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0
cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJh
bCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBF
Q1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1w
bCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyAr
MzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmlu
Z1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOwor
ICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlz
TnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBh
YltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjLi5hOTk3
MTIzNGMzYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENv
bnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0
dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VT
dGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9Owot
ICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBh
dHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0
dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxc
eFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0
dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9G
aWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMS4uOWUzNWQ5NWJiNTFhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkg
KzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEg
dGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29t
ZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JT
ZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3Qi
KTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7
Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5n
ZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25k
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsK
IAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGlj
OgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFk
ZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRl
ckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYuLjcyM2Q1ODhhYTQ5YyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAK
QEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAg
ImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJh
XCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAg
ICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0
cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9t
TGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25B
U0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9u
QVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZh
bGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAg
ICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBc
ImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNo
b3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tl
eWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQuLjU2YTU5ZjJkYTllNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0x
NTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNU
KEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNp
bXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6
OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQ
RUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0
cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktp
dCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
CmluZGV4IGE3ZmE0NDMyY2E3OC4uMGFjOTA0ZGQwZTMxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcs
MzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikK
ICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3Mjgu
anAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxl
Llx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16
ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50
dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVr
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51
ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4x
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAg
RVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJj
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0
LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1Rf
RVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0
aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNV
Qi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhv
c3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2Fs
aG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLD
pcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVz
dC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODcuLmE2MjQwYTM1
MzBmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hE
YXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hE
YXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUlu
RmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7
IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9w
aWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNj
b3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmlu
ZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRp
bjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10o
YXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVy
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3Bw
CmluZGV4IDA3YTQ1ZTBlZjQxNC4uMWIxZDlmZjBmZTgxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBA
QCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1
ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0
ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAg
QVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQog
ICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUo
dGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVD
VF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVz
dDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMo
KS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJv
bUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5n
KGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQog
CiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09m
RXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkw
Mi4uNGQyN2Y0ZmQ0YjU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3
IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogewog
ICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBu
dWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9z
LCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJf
cywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5RiVG
MCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBB
TDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRleHRF
bmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVl
cnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFjZXMi
X3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9z
fSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywg
ZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3
IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogICAg
IGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNoZWNr
VVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVuY29k
aW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGlu
ZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2
U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVja1VSTChtYWtl
U3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3cyJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywg
IiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRoPyVD
MyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczovL2hv
c3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAl
RDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQx
JTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZS4u
N2ZjN2VmNDE5NGIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTks
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMg
Y2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3Ro
IHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhl
IGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmls
ZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VU
cmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwog
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywg
NDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3Jp
Z2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRh
dGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSBy
ZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0g
RmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7Cisg
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgp
OwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJf
cywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
T3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3
ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJh
c2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRo
ZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRh
YmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNr
LgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1w
b3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJh
c2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRo
RGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5E
YXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3
Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQg
YSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91
bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91
bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRl
c3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24n
dCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFi
YXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAq
d2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAi
V2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJh
c2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBz
Il9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmLi5lYTc0YTMw
NmI3ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVm
PiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5
YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxr
VDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4
Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZt
MVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdP
eS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29k
ZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhr
aUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFp
blB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNY
MWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAg
Ijk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRv
SU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9p
UTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0
OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRv
IHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAg
ICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZp
Y2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwLi42YWY0ZTg4YTgwMmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWdu
VW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25p
bmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1
ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVx
dWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0
cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5s
aW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Vu
bGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2Vu
Il9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3Ro
KCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJl
cXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsK
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAg
LTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNv
ZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZl
Y3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0g
cmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZi4uZGJl
ODAwODg3YzliIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMg
KzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5n
QXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVz
IH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsK
LXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09P
UCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBj
b25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERv
U2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVj
dFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBz
b3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0
aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2Ft
ZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVj
dFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsK
IAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNv
dXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAo
c291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJl
ZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0
aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAg
IGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7Cisg
ICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAg
IGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3Ms
IFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAg
ICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVh
ZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxp
emVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVy
OjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBz
b3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4i
KSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwot
ICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5h
dGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRl
c3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIp
OworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09P
UCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwor
ICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5h
dGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWly
ZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29s
YXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RT
d2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1
ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBu
dWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRl
c3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlz
c2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7
CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhh
dmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJl
Y3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vz
bid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBp
c0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRl
eCBjODE3MjE4NGEwYTEuLmY0NzBlNmVjYTZjOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAg
LTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkK
ICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZl
cihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1h
aW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFp
bkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJl
Y2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlh
bGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJl
c3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9
IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVj
dG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxv
d2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNo
Il9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5k
ZXggZmRkNjcwODY4M2ViLi5lZWUzZTAyODE1ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJh
bWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNv
bnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUg
PSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1l
PjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIK
ICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyAr
Mjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8
L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRk
YTVlYTJmMGUuLjkwOTJkZTAwNDIzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBA
IFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1l
bnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05T
VVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhb
dXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNv
bnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3
YTYyODU3MWQyLi5hNWY3YmJmNTdiOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChX
ZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVu
dCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVy
eVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAg
ICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmlu
Zyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJf
cyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0Li5j
NDNhZWNkMTg5ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBA
IC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3
OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNo
ZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hU
VFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5k
ZXggMjk0OTAyNWY3MDliLi4wZjJhN2M3ZDM4YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNv
Y2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRs
ZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAx
LCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAg
IHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2Nr
ZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAg
eyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlv
biJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0
Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6
ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVj
dGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWlu
dDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQ
SDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAi
bU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNB
ZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBO
VTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVz
PSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBh
dXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNh
dGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcg
KzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAg
ICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhm
NGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlX
ajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1
QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJk
YnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBI
TGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNv
ZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJp
dmF0ZUtleSk7Cg==
</data>
<flag name="commit-queue"
          id="485486"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457017</attachid>
            <date>2022-04-07 22:01:47 -0700</date>
            <delta_ts>2022-04-07 22:08:16 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>107410</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAppbmRleCBlOTIzMjRhY2JmN2UuLjJkYzY0
NTViNDQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKQEAgLTc0
LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpFeHRlbnNpb25zR0xPcGVuR0xD
b21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAgICAsIG1fcmVxdWlyZXNSZXN0
cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwgbV91c2VJbmRleGVkR2V0U3Ry
aW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5kb3IgPSBTdHJpbmcocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7Ci0gICAg
bV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkp
OworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKIAogICAgIFZlY3RvcjxT
dHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVudHMuY29udGFpbnMoIm52aWRp
YSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkLi5iOTI0ZGFkM2IyN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRy
aXZlci9TZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNo
IChjYXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBh
Z2VMb2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpOb3JtYWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1
cm4gU3RyaW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmco
IkVhZ2VyIl9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhLi5iMmM5ZWU1NTgzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIv
U291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNzUsMTkgKzc1LDE5IEBA
IGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAg
ICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJp
bmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
IAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigi
LS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJM
ZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcg
PSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0g
U3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0
ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAi
LS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0g
U3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6
ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZp
bmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAK
ICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24g
PSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNz
aW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ug
b2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAg
ICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhl
IHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxp
dGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVk
Q2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQg
Y2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxp
dGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENh
cGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMp
OwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNN
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBA
IC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJy
YXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAg
ICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpT
T04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50Lgot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlz
IGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDks
MTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAg
ICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxp
dGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQg
aW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0K
ICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0
IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBt
YXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAo
IWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRj
aCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9
CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAog
ICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVk
IHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24o
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKn
OC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIv
I25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVt
YmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQ
dHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmls
aXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJG
YWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAg
YXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICgh
ZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBw
YXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEz
LDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlw
ZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAi
cGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
dHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24g
aXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUg
PSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRv
IGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAo
IWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1p
c3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3Ry
aW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkg
dXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8v
IEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0
LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYg
YWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVy
YXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJh
dGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAg
c3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9u
SXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0g
b3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0g
b3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7
CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIg
ZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVt
ZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcg
KzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAo
b3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9p
bnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBi
b29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFj
dGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1
ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2Uo
KnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9p
bnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBv
aW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50
ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQog
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1
dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYg
KCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0
dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24g
PSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicg
aXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9y
IHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0
b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rp
b24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQs
IEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVl
QXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAo
IWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgp
OwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBp
ZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsK
ICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZh
bHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFs
aWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJh
bWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFt
ZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBh
cmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIx
NzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1Bv
aW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBl
ID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlw
ZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFt
ZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlv
bj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBh
dXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAg
IGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwx
MyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0
aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUi
KQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAg
ICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmco
ImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcg
aXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0
T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAg
ICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBp
bnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50
eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVy
VHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFj
dGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9p
bnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0
aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlm
ICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1
ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rp
b25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0
aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4
LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0
cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25z
QXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rp
b25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4
IGEwOWQwOTQxYmE3Zi4uZGI5N2ZmMGZhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9X
ZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0g
ICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0
aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBA
IC0xMTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2Fw
YWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYg
bWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7
Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dl
YmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsK
KyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Vi
a2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7
CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICIt
LWF1dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMg
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2
aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3Bw
CmluZGV4IDY1NmE2NzZhYjJjYS4uZGM5MWZiM2NiNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2Fw
YWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVz
OwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1N
YXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpP
YmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBj
b25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJv
d3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJv
d3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3Ry
aW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBt
YXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNw
cAppbmRleCA0ZDY0NzUwNjhjM2QuLjY0NTVlODFhZjFmMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFz
T25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBA
IC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcp
CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05V
TEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIg
fTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5h
bDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3Zl
KG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwg
MnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJW
U3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
T3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVD
VF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShj
b3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RG
TW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBA
QCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1Jl
ZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7
ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5n
IH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBF
Q1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQuLmRiMjQ2
NTIzOTY4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5
c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBN
YXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06
Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
KSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmls
ZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3Rp
bmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3Mp
OwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmls
ZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4
TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
aW5kZXggOWU2ZGM5ZDI1MzI1Li43Zjk3YmNkMjc0MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBI
ZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAx
LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdl
SW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4
MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdl
ciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmlu
ZGV4IGU3NjcyNTg5NTZlMy4uYTQ4N2U1N2U5ZDA0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJh
Y3RlcnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFm
dGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWls
ZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFy
YWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVp
bGRlcjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRl
cjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4
OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7
CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcg
ZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVy
LmFwcGVuZCgiYWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVs
bHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEy
MzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qg
d2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0
LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RS
VUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5
KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29u
dmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhh
dmUgZml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3Nhcnku
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAg
ICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
YnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCks
IGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
IiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
Il9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCht
YWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVp
bGRlcik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VR
KHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hh
bmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hh
bmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBz
dHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3Mp
LCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRl
ci50b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRo
ZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBU
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2Fw
YWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWls
ZGVyLmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBu
b3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5
ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAg
ICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9F
UShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwg
c3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0
aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIu
Y2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmlu
ZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBS
ZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVp
bGRlci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTAp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkw
LDE1ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVY
UEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9F
USg4VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBi
dWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3
KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVj
dEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19j
YXN0PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmco
KSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ICE9IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAg
IGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMi
KTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmco
IjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQo
IjQ1NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIx
MjMiKSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIx
MjMiKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIy
LnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBi
dWlsZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9t
U3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAog
ICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
ci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxLi5iYjMzMTY1YjY2NzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0
MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdp
dGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Up
CiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygi
VGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJU
X1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRl
c3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygp
LCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjLi5i
NDQyZTQzNjhjMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3RyaW5n
KCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21TdHJp
bmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsg
IkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0
cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXci
X3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9Owog
CiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGMyNTMzODJkMzRhMS4uYmFmNGQ3
YWNiZWUzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNw
cApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZz
TnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlW
aWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3Rl
cnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7
CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMp
OwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZp
ZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkK
ICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhD
aGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJh
Y3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJh
Y3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNF
bXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0
b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3Ojpl
bXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0
ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwog
Ci0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAg
ICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhl
bG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5n
Vmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsK
ICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgq
Y29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOwor
ICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRz
ID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0
b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7
CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0Fu
ZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxB
U0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNB
bGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSku
aXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7Ei
KSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1
MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5n
KCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhT
dHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
VmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFT
Q0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxj
b25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNC4uNTUxN2FmNWQ3NDMxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBU
RVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUo
a3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0
cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJs
Lmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5j
b20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwu
cG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dv
cmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5o
dG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwi
X3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZh
cj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21l
bnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9z
KSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJM
KEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJM
IGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJM
UHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5l
eGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5h
bWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8i
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
ZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ei
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6
cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
fQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyAr
MzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsK
ICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJM
IHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7
ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAg
ICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwg
dXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2
YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBV
UkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtl
eTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVy
bDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwg
InZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAi
a2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwx
MSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwx
Il9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFs
MyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0
ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7
ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIs
ICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7
ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9y
MTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7
eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtl
eTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2
YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAK
ICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7
CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVz
dD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3Qi
X3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAog
ICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJf
cyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJf
cywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0
IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8i
X3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwg
InRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0
b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3Rv
cjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0
b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5k
ZXggMjU2YTllNDA2MGM3Li5hMjJlYjIzY2NiZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFw
TGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBT
dHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAi
djIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOwor
ICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3Mp
OworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6
Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3Ry
aW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQuLjViMjE3MmVjMDBiNyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwx
MyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQ
RUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0
cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1Rf
VFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFs
VmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBz
eW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJp
bmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJs
ZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBF
WFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVD
VF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1Qo
V1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0
c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcg
ZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVs
bG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0
aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3Rh
cnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3Ry
aW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09
IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0
ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRF
U1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBU
RVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmco
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZv
aykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91Ymxl
KCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7Cisg
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVk
IGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEi
KS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7Cisg
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQ
RUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4g
ZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdp
dGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4g
MCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgi
X3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91
YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51
bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7
CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFz
ICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmco
IlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9z
KS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcyku
aGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
VGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAg
IEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0Niwx
MyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJv
bVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70i
KSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAy
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4
U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9z
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAog
VEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVt
cGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9z
KTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7
CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVT
VChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmlu
ZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxT
RShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsK
ICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2
OTQ5MGZjLi5hOTk3MTIzNGMzYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcg
QEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVz
dFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7
LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7
CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsK
ICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRl
cm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMS4uOWUzNWQ5NWJiNTFhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3Iu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5j
cHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRh
KCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEo
IlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBm
b3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlz
IGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBp
cyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVN
b25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRo
ZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRl
c3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYuLjcyM2Q1ODhhYTQ5YyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFk
ZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNl
cikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAg
ICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNv
bW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0s
Ci0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAg
U3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJv
bUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZy
b21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAg
c2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQs
IFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAg
ICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVv
dGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwog
ICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQuLjU2YTU5ZjJkYTll
NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91
YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNU
X1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmlu
ZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIp
KSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29k
ZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBT
dHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3Rp
bmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OC4uMGFjOTA0ZGQwZTMxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAt
MTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5c
dTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJp
bmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VR
KFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
Y28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwu
dWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4t
LXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4x
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VR
KFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsK
ICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3Ry
aW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxl
LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOl
w6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
w4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxl
LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4x
KCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2Zi
ODcuLmE2MjQwYTM1MzBmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRh
YmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
cmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihz
Y29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAg
c25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAg
ICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50
b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3Jk
KHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVF
KHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
U2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNC4uMWIxZDlmZjBmZTgxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAt
NDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsK
LSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxl
KFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxl
Il9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhp
c3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29u
dGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIp
OwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEo
KSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNp
emUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdp
dGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4
IGRjNGUxMjgwODkwMi4uNGQyN2Y0ZmQ0YjU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAt
MTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVu
Y29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iN
I8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVG
MCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4
JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJz
KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAg
ICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRw
Oi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdp
dGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRo
JTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxh
dGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJf
c30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAt
MTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVu
Y29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6
ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30p
OwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAi
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBB
TDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6
OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1s
YXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBj
aGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284
ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8v
aG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJp
bmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIl
QzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMz
JTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1
MzI4MTg0YzRjZS4uN2ZjN2VmNDE5NGIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpA
QCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAg
IC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRp
b24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFu
ZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3Qg
YW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3Vs
ZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJh
Y2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4g
dGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhl
ciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcg
KndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFi
YXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRw
cyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxl
KQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRo
ZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0
ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkK
ICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBk
YXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0
KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNl
IHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1v
dmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1
NDNmLi5lYTc0YTMwNmI3ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNl
Y0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFa
eVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tG
OGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQr
eiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVU
ejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoi
KTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3Ry
aW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJu
TTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3
Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2
aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpn
MkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajlo
QXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFB
di9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2
OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7
CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJp
dmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwLi42
YWY0ZTg4YTgwMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0
aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmlu
Z1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUo
c3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIu
c2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcg
PSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6
OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVz
dGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxp
bmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBy
ZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCAr
PSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBy
ZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRp
YyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5n
UGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVz
dDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rv
a2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkg
PSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291
cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJf
cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9
IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIics
IHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRv
a2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBi
YXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90
b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmlu
ZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2Vh
ODEwOTNjZi4uZGJlODAwODg3YzliIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
QEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0
ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJv
b2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7
IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hh
ciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGlu
YXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1Nh
bWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBl
Y3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFT
Q0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRl
cmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1l
T3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVk
aXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7
CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7
CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291
cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09Q
KTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3Vy
Y2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVy
czsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0
bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRp
b25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNP
RVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRl
ci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRp
b25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRp
b25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRl
c3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihz
dGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9
LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3Rh
dGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBj
b25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
ID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wg
PSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAi
c2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVp
cmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0
ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9y
aWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJl
cXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVk
ID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWly
ZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0
ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09F
UCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5k
Q09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJl
Y2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBz
b3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRo
UmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVj
dCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSBy
ZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNv
cnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBz
dGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTEuLmY0NzBlNmVjYTZjOCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRl
bnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQ
U2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5l
Y3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQv
aHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1s
Il9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1U
eXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJT
Y3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2
YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCks
IFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVx
dWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5k
YXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNj
ZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViLi5lZWUzZTAyODE1ZGUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0g
IjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48
L2h0bWw+IjsKLWNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8g
cGFyZW50RnJhbWUgPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0
bWwnPjwvaWZyYW1lPjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUg
PQogIjxodG1sPiIKICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4i
CkBAIC0yOTksNyArMjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAi
ICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8
L2h0bWw+IjsKKyI8L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bQppbmRleCBhODRkYTVlYTJmMGUuLjkwOTJkZTAwNDIzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAx
LDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAg
ICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VS
TCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBh
c3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
IiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10p
KTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVV
UkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwu
bW0KaW5kZXggYzE3YTYyODU3MWQyLi5hNWY3YmJmNTdiOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2
LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1M
QW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50
RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hv
ciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53
ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2Ey
ZmFkZWE2YTA0Li5jNDNhZWNkMTg5ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdl
YlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkCiAKIC0o
dm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdp
dGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUg
KilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2Up
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAg
ICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBT
ZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliLi4wZjJhN2M3ZDM4YjMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5l
Y3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29u
bmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQ
UmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwK
LSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsg
IlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQor
ICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAg
eyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJT
b2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAg
IH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdU
Rk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBA
QCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcr
VGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3Fo
ZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgv
amlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEw
Y3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJl
OVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsK
ICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNv
ZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUp
OwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJp
dmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZi
VldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRt
Z1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAy
Mkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0g
ICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUy
cGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3Zl
KCpkZWNvZGVkUHJpdmF0ZUtleSk7Cg==
</data>
<flag name="commit-queue"
          id="485488"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457018</attachid>
            <date>2022-04-07 22:08:16 -0700</date>
            <delta_ts>2022-04-07 22:14:00 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>108084</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAppbmRleCBlOTIzMjRhY2JmN2UuLjJkYzY0
NTViNDQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKQEAgLTc0
LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpFeHRlbnNpb25zR0xPcGVuR0xD
b21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAgICAsIG1fcmVxdWlyZXNSZXN0
cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwgbV91c2VJbmRleGVkR2V0U3Ry
aW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5kb3IgPSBTdHJpbmcocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7Ci0gICAg
bV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkp
OworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKIAogICAgIFZlY3RvcjxT
dHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVudHMuY29udGFpbnMoIm52aWRp
YSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKaW5kZXggYjkxMTEwMjU5ODM1Li5l
ZGFlMTI5MmYxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcg
KzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6
OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWQuLmI5MjRkYWQzYjI3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Np
b24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lv
bjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxp
dGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJh
dGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1
cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmco
Ik5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3Mp
OwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2EuLmIyYzllZTU1ODNhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRy
aXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAg
cHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJ
VF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
ZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYg
cG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZy
b21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0g
c3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9Iiwg
aG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJn
ICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
IApAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25P
ckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICgh
bV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRl
ZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNy
YXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03
MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpw
cm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEu
IElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8g
YW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4g
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRp
ZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGgg
YXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYg
KCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3
MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2Fw
YWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAz
LjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCBy
ZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBp
biBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEz
IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmls
aXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChp
KS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJp
bGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1h
dGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAv
LyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5n
IHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFi
aWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkx
LDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nl
c3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1h
dGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAz
LDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNl
c3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Np
b24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRl
ZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0
aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyAr
ODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3Qs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpT
ZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBt
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5
MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmpl
Y3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlv
biJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9u
SXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBu
dWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlk
IG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlm
IChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6
U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkg
YWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAg
ICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNo
ZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJh
dGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1
ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmpl
Y3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAg
ICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9i
amVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVy
T3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0g
InBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxp
ZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkg
ewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlO
KTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5
Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJ
TlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAg
ICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2Vs
IikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNl
bDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZh
bHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1p
c3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVk
VmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlk
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
ICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24u
dmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9
IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
ImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlcklu
UmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7
Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdk
ZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2
LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRl
bHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAg
ICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9N
SU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5k
ZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNP
Tjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFW
YWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFt
ZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNo
IikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsK
ICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
cG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52
YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkw
LDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9u
U2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rp
b25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAg
IGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2Ugewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwog
ICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24m
IHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlu
cHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5w
dXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJj
ZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNl
IHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElu
cHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBv
aW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9
IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25J
dGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMg
aW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNl
KFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRl
bXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+
Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFu
IGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBh
cmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFs
aWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFi
YTdmLi5kYjk3ZmYwZmEyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRy
aXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNl
cnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFi
aWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsx
MTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2Fw
YWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0i
IFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlv
biJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3Bw
IGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2
YTY3NmFiMmNhLi5kYzkxZmIzY2I1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3Bl
L1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRy
aXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBj
YXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxp
dGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMu
c2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7Cisg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsK
ICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0t
YXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBh
YmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRk
NjQ3NTA2OGMzZC4uNjQ1NWU4MWFmMWYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlM
VlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcg
b3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShv
cmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7
CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1
LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2lu
YWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5h
bC5pbXBsKCkpOwpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
TW92ZVJWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5n
SGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0
cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdp
bmFsIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwp
KTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02
Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZp
bmdUd29SZWYpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0
cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3Jp
Z2luYWwtPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwo
KS0+aGFzT25lUmVmKCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3Jp
Z2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdp
bmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAg
RVhQRUNUX05VTEwob3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAg
IFN0cmluZyBzdHJpbmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3Mg
fTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmln
aW5hbC0+aW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMzNC4uZGIyNDY1MjM5Njg2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNz
aW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmls
ZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9z
KSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZk
YzlkMjUzMjUuLjdmOTdiY2QyNzQzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2Fz
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1
ODk1NmUzLi5hNDg3ZTU3ZTlkMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBw
ZW5kKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZn
aCIsIDMpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywg
YnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQo
JyMnKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywg
YnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlT
dHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5k
Q2hhcmFjdGVycygiIiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVp
bGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBl
bmQoIlhZWiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNY
WVoiX3MsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWls
ZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0
cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSwgYnVpbGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlh
ZGljQXBwZW5kKQogewogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJh
YmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
QSIpLCAiQiIsICdDJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIp
OwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZCIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJD
IiksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1
cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24n
dCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJj
ZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
LmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRl
ci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIi
LCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAi
QiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBT
dHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4g
dGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlz
OEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5s
ZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBi
dWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
IGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAg
ICB9CiB9CkBAIC0xOTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0
cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAx
MjM0NTY3ODkiKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAg
IGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBl
bmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFu
Z2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEp
OwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5n
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygp
LgogICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmso
MTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
Il9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKQEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1
aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNp
dHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9F
UShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwo
KSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3Rl
cnM4KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4K
ICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2Vk
LgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1Rf
RVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJf
cyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50
IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgp
OwogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQ
RUNUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQo
IkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRo
ZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFj
aXR5KCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwg
YnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVp
bGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwx
NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQo
IjAxMjM0NTY3ODkiKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEw
VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODkiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywg
YnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWls
ZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwog
CiAgICAgYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVY
UEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVp
bGRlcik7CiB9CkBAIC0zMTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBF
cXVhbCkKICAgICBFWFBFQ1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIq
PigwKSwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgIT0gU3RyaW5nKCJhYmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5n
KCJhYmMiX3MpKTsKIAogICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEu
cmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1
aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
YnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCIxMjMiX3MpID09IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1
aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmco
KTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvQXRvbVN0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIjEyMyIpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9B
dG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRl
ci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNo
cmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBs
LmNwcAppbmRleCBhNzYyYmUwYTIyNzEuLmJiMzMxNjViNjY3NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRF
U1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQog
CiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBT
dHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1Qi
X3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAK
ICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmMuLmI0NDJlNDM2OGMw
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0
b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBU
RVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIp
OworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3Ry
aW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRl
cmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIg
fTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAg
IFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBF
Q1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExLi5iYWY0ZDdhY2JlZTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewog
ICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJp
bmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8i
KTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJp
bmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBF
WFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAt
ODQsNyArODQsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UK
ICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMo
U3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJp
bmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051
bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwog
CkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29k
ZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJp
bmcgaGVsbygiaGVsbyIpOworICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdW
aWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29k
ZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0
b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQ
b2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRz
SXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5n
IHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdW
aWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtp
dENvZGVQb2ludHMuYmVnaW4oKTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4Mywx
MCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdN
YXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkp
OwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJ
KCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFT
Q0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlz
QWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9z
KSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29j
b2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmlu
Zzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFy
Kj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFhZmE0Li41NTE3YWY1ZDc0MzEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZf
VVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFs
aWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRv
U3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1
cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwog
ICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
cGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5k
ZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRt
bCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZh
cj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJf
cyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1
cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBr
dXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwu
bGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyks
IGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZp
ZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElk
ZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZy
YWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRl
cmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJM
KEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhv
c3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6
cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8v
YS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ev
YiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3
d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1Rf
RihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBU
RVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1
cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2
YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBV
UkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwz
LCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9z
KTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEz
MTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0
VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7
ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwx
NSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAg
IFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMm
a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3Ix
MTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIi
fSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4
IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAg
ICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAi
In0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0s
IHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZh
bDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwg
eyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1
cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwg
dXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEy
MiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3Qi
X3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVy
bDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBV
UkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIi
LCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJs
MjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9
LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgp
LCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAg
eyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwog
ICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/
Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAg
ICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/
Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89
PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0
MDYwYzcuLmEyMmViMjNjY2JmNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0
b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3Zl
KQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2
MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0g
ICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNl
dCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFw
LnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwg
WyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAg
ICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZC4uNWIyMTcyZWMwMGI3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBA
QCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3Ry
bGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlh
QVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5
bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmlu
Z0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4
cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyks
IHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRl
cmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5n
IExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgi
U3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3Ry
aW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBM
aXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJp
bmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmlu
Z0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5
VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmlu
ZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMo
ImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAK
ICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJp
bmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVt
cHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlcklu
dE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0g
Pj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4
cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0
cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBT
dHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9r
KTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcyku
dG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2Vl
IGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShv
ayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3Ig
Im9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwg
d2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3Mg
YWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Iiku
dG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3Vi
bGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90
IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
ImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJp
bmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZp
bml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8v
IHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
bmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNU
KFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0
KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkp
OwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgi
VGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygi
VGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMg
QEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJv
bVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3Qi
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0
KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwg
U3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRl
cmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVY
UEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5p
bXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3
ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3Ry
aW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7
CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEu
aXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFy
IGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmMuLmE5
OTcxMjM0YzNjMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0
YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307
Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVu
c2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0
UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygi
XFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxLi45ZTM1ZDk1YmI1MWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQs
OSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMg
YSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVz
dCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9z
KTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hh
bmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNv
bmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3Mp
OwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJs
aWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhl
YWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZi4uNzIzZDU4OGFhNDljIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNw
cApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAg
ICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBc
ImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAot
ICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAg
U3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZy
b21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5v
bkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShu
b25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUlu
dmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQog
ICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6
IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAg
ICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAg
c2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUxZC4uNTZhNTlmMmRhOWU1IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAg
LTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRF
U1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0
U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29y
ZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBF
WFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2Rl
U3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2Vi
S2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZm
aXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5j
cHAKaW5kZXggYTdmYTQ0MzJjYTc4Li4wYWM5MDRkZDBlMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1
NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1Njcy
OC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1w
bGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4t
LXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28u
dWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJs
LnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cu
dGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4w
LjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3Mp
KTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
cjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVD
VF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJl
Y3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
U1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2Fs
aG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxl
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9j
YWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50
ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4Ny4uYTYyNDBh
MzUzMGYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVz
aERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVz
aERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55
SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3Vu
dDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0
dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50Zih0
b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQu
c2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3Ry
aW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRp
bjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBb
XShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZm
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHAKaW5kZXggMDdhNDVlMGVmNDE0Li4xYjFkOWZmMGZlODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8g
YnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJu
b3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAg
ICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUp
CiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmls
ZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQ
RUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91
cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpm
cm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJp
bmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9
CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRz
T2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4
OTAyLi40ZDI3ZjRmZDRiNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5
LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7
CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiks
IG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3Qi
X3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThE
Il9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlG
JUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAg
UEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4
dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9x
dWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNl
cyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMi
X3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0
dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywg
InF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAg
Y2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9z
LCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUx
LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAg
ICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hl
Y2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5j
b2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29k
aW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRm
MTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1h
a2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7Indz
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9z
LCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/
JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8v
aG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJp
bmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVC
MCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAl
RDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNl
Li43ZmM3ZWY0MTk0YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5
OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJv
dGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0
aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwg
ZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJl
IHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2Us
IHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRh
YmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMg
dGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyAr
MjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFu
ZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNo
b3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
VGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vz
bid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0
YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2YuLmVhNzRh
MzA2Yjc4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlS
ZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1I
QXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlS
TGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2
NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQw
Rm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJo
Z095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5j
b2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2tx
aGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0
YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6
M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAg
ICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lh
NG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMy
T2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92
MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1
dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsK
ICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRp
ZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODAuLjZhZjRlODhhODAy
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNp
Z25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2ln
bmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJl
cXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsK
IAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhy
ZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91
bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
dW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9r
ZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2ln
blVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWdu
aW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkp
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBz
aWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNl
X3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0
X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRT
dHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpA
QCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERl
Y29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2Vu
VmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3Rh
cnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmLi5k
YmU4MDA4ODdjOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwy
MyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRp
bmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9
Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VD
T09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1As
IGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhw
ZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFs
IHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGlu
YXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNT
YW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhw
ZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3Vy
Y2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAo
c291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJz
LmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlm
IChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVt
YmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwog
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRl
c3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAg
ICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsK
KyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAg
ICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJf
cywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwog
ICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25I
ZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlh
bGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2
ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIq
IHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMo
W1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdp
biIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7
Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3Rp
bmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYg
ZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3Jw
Iik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VD
T09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7
CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3Rp
bmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1
aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklz
b2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVj
dFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAt
NzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
Y29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
IG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAi
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09Q
QW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUg
ZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBt
aXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkK
IHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3Qg
aGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRp
cmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRv
ZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29s
IGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmlu
ZGV4IGM4MTcyMTg0YTBhMS4uZjQ3MGU2ZWNhNmM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpA
QCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0
KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2Vy
dmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNl
aXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwg
bWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBt
YWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24u
cmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBw
bGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2Vy
aWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQ
UmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9z
IH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShW
ZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFs
bG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0
Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpp
bmRleCBmZGQ2NzA4NjgzZWIuLmVlZTNlMDI4MTVkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlm
cmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwot
Y29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFt
ZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJh
bWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+
IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3
ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOwor
IjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4
NGRhNWVhMmYwZS4uOTA5MmRlMDA0MjM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcg
QEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0
TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBb
TlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1d
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5n
KFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAg
Y29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBj
MTdhNjI4NTcxZDIuLmE1ZjdiYmY1N2I5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVt
ZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1
ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwog
ICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3Ry
aW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Il9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQu
LmM0M2FlY2QxODllNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0K
QEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZp
ZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6
KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5p
c2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
SFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpp
bmRleCAyOTQ5MDI1ZjcwOWIuLjBmMmE3YzdkMzhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2Vi
U29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFu
ZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgx
MDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAg
ICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNv
Y2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAg
ICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0
aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2Nl
cHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFs
aXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25u
ZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1
aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxM
MVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAg
ICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hh
M0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1Qkda
ME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRL
NXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAg
IGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZp
Y2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEs
NyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkK
ICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1C
aGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2
eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1w
UnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThi
YmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpL
MEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERl
Y29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQ
cml2YXRlS2V5KTsK
</data>
<flag name="commit-queue"
          id="485491"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457019</attachid>
            <date>2022-04-07 22:13:16 -0700</date>
            <delta_ts>2022-04-07 22:51:31 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>108791</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAppbmRleCBlOTIzMjRhY2JmN2UuLjJkYzY0
NTViNDQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKQEAgLTc0
LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpFeHRlbnNpb25zR0xPcGVuR0xD
b21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAgICAsIG1fcmVxdWlyZXNSZXN0
cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwgbV91c2VJbmRleGVkR2V0U3Ry
aW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5kb3IgPSBTdHJpbmcocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7Ci0gICAg
bV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkp
OworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKIAogICAgIFZlY3RvcjxT
dHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVudHMuY29udGFpbnMoIm52aWRp
YSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKaW5kZXggYjkxMTEwMjU5ODM1Li5l
ZGFlMTI5MmYxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcg
KzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6
OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFhZDQuLjhmNTQ2
NmE1YTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2
LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhH
Q0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21M
YXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkp
OwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpoaW50KEdDR0xlbnVtIHRhcmdl
dCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZC4uYjky
NGRhZDNiMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QK
IAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7
CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFn
ZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3Ry
YXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYS4u
YjJjOWVlNTU4M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZp
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTc1
LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiog
YXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0
cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5n
dGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9y
dD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAg
cG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFz
dHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAg
ICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhv
c3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2
ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBw
YXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAg
ICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQs
IFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIp
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVs
ZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRp
ZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2Jq
ZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVm
aW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVx
dWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBp
ZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFz
T2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3
YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJp
bGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4g
TGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxp
ZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAg
ICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVk
Q2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBh
YmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRy
aXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAg
ICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGll
c1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xp
c3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGll
cyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxp
ZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
Zmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBj
YXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7
ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNo
Q2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0
TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJp
bGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMg
YmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJn
dW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsK
ICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4g
V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3Qm
IHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0
Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBT
dHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNl
OjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248
dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2
ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5n
KCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5l
d1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwog
dm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRp
ZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0
ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0
ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVl
KTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlz
IGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBw
cm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAg
ICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYg
KHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlu
IG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBh
Y3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBh
Y3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlk
LCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsK
ICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsK
ICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtl
eVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52
YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93
biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
fQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAg
LTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihK
U09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8g
ZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAg
ICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAg
ICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBp
bnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQs
NyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpP
YmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9y
aWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRv
IGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJ
ZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90
IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2
YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0g
UG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9
OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0
aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAg
ICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9u
Lm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBz
dGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUs
NyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBh
Y3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJ
blJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcg
KzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNO
dW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0y
MDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2lu
dGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1
YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQ
b2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAg
ICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7
CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAg
IGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAo
IWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBp
cyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFj
dGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmlu
ZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQog
ICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScg
b2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcs
NyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25z
dCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBk
ZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7Cisg
ICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0
YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBk
ZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJk
ZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJh
bmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewot
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVs
dGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9u
Il9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3
ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nl
c3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVy
c0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1l
dGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5v
dCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRl
cnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlm
IChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBl
ID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2Ug
cG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBv
aW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNz
aW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNP
YmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4g
b2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIy
MDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHBy
b2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0
eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5
cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5j
ZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5j
ZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4g
YWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIy
NywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0
QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2Ug
PSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9p
bnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRv
ZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0
eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAo
aW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRT
b3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2Ug
cG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
ICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25z
Il9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBp
biBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBz
ZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0y
MjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJv
Y2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0
aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICgh
YWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rp
b24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3Qg
YW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAg
IH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3Jt
QWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAg
IGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwog
ICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2Vu
dCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFt
YXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJp
dmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNl
R3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2YuLmRiOTdmZjBmYTI5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2Fw
YWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4
Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwog
ICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJp
bGl0aWVzOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAK
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBK
U09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0
aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJ
QkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01p
bmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElC
RVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWlu
aUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9y
PFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJs
YXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2EuLmRjOTFmYjNjYjUyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKKysrIGIvU291
cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdl
YkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRp
ZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmco
ImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgi
X3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJu
IGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBib29sIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09O
OjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMo
Y29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNh
cGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0
cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0
cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRz
ID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAKICAgICBhdXRvIGJyb3dz
ZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRPYmplY3QoIndwZTpicm93c2VyT3B0
aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkLi42NDU1ZTgxYWYxZjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5h
bC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFz
T25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
Q29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5n
KQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUo
b3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBT
dHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCkt
PnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFs
KTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAg
RVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBA
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAg
LTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFs
U3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJp
bmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0
cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5h
bCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2Ni
YjlmMzM0Li5kYjI0NjUyMzk2ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIFRFU1RfRihGaWxl
U3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wgc3VjY2VzczsKLSAg
ICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9l
eGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nl
c3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmlu
Zygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hh
cmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RS
VUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNS4uN2Y5N2JjZDI3NDM3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBA
QCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNh
c2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdl
cikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTMuLmE0ODdlNTdlOWQwNCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2
MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmco
KTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
cjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3Ro
KCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFy
YWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMw
LDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3Rl
ZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpm
cm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxs
c2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVy
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgt
Yml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVp
bGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1
bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3
aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQs
IGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNu
J3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2Un
LCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRl
ci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxz
ZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNp
dHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAg
ICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4K
ICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJf
cyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAv
LyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
IHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUg
Y2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAw
KTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
QUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRl
ci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBj
YXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBD
bGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6
ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsK
ICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVp
bGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygw
KTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxk
ZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5k
KCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIy
LmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBi
dWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVp
bGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIy
ICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBi
dWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsK
ICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBh
dG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRv
bVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MS4uYmIzMzE2NWI2
Njc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBs
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApA
QCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNXaXRoSWdub3Jp
bmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIpOworICAgIFN0
cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAgQVNTRVJUX1RS
VUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlIikp
OwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7Ci0gICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoIiIpLCAi
IikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
ZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCmluZGV4IDg4
MDk0ZmIxYmIyYy4uYjQ0MmU0MzY4YzAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAg
U3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsK
ICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVy
YWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3
QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7
ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmll
d0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgy
ZDM0YTEuLmJhZjRkN2FjYmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFy
dHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJp
bmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmlu
Z1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVy
cygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFy
dHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3
RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdW
aWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcg
dmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uo
dmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhD
aGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVy
cygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8o
ImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNv
ZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRl
cmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAg
ICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0
KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Vi
a2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29k
ZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBv
aW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdT
dHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3Ry
aW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmco
IkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJp
bmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUko
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAw
ODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhi
aXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQuLjU1
MTdhZjVkNzQzMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJM
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBAIC02MCwx
NiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFyKQogICAg
IEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJsLnByb3Rv
Y29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBs
ZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
d3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgRVhQRUNU
X1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9ydCgpLnZh
bHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNlcigpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1RfVFJVRShr
dXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFn
bWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBzdGF0aWMg
VVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyArODAsNDMg
QEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQogVEVTVF9G
KFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3Vz
ZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNk
ZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9jIl9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5n
KQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQub3JnLz8i
X3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIpLCB0ZXN0
VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVTVF9GKFdU
Rl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwgdXJsMyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmw0ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJrZXkxIiwg
InZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAgIAogICAg
IFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2
IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0b3I1Nik7
CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5MSIsICJ2
YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwgdXJsMTUg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBV
UkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyIl9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1
MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEiX3MsICJ2
YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsKICAgICAK
ICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZhbDIifSwg
eyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywg
InZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAg
ICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MSZrZXkz
PXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFs
MiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywg
InZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcsIHVybDE4
KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAg
ICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFs
MyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZh
bDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5MSJfcywg
IiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7
ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0VmVjdG9y
MTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIy
IHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RWZWN0b3Iy
MTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAiIl9zLCAi
PSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAKICAgICBV
UkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsKICAgICBV
UkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9dGVzdCJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
NzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9zLCAidGVz
dCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAgICBVUkwg
dXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7CiAgICAg
VVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7eyIi
LCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyOSwgdXJs
MzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3MsICI/Il9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMxLCB1cmwz
MiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9zLCAiPyJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNSwgdXJs
MjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9W
ZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNy4uYTIyZWIyM2NjYmY3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdU
Rl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFw
KQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIg
fSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5n
IHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJr
MiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8g
bWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4m
IHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkLi41
YjIxNzJlYzAwYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
RlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5n
LmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRl
cmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgi
KSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJF
eHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBj
b25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAg
ICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBF
WFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5n
dGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFs
KTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwp
OwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7
CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0
ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhD
aGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBU
RVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3Ry
aW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9U
UlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVD
VF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIo
KSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUx
ICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAs
IGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAot
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEo
MS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9r
KSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGlu
ZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAg
ICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZv
aykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5r
LCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5j
b25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0
IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2su
Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8g
cGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHki
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2
YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9E
b3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2sp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIp
LmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNU
IiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJf
cykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJp
bmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9z
LCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4
Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQo
KSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGlu
Z0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJV
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4
KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIp
LCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxh
dGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAg
IEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmlt
cGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGlu
Z0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAg
IFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAg
ICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5n
MS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CmluZGV4IGZlNWNlNjk0OTBmYy4uYTk5NzEyMzRjM2MyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTE3
OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1
cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFyIG5v
bkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcgeyBu
b25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1
czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGluMShu
b25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50RXh0
ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIAog
ICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjEuLjll
MzVkOTViYjUxYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1v
bml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwot
Y29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBj
aGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0
RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNl
ZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdl
ZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1Ymxp
YyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmLi43
MjNkNTg4YWE0OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRl
ckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9c
dCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5n
IHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFp
ckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3Rl
IH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAg
ICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0p
OwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRU
UEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTog
XCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJp
bmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3Rl
KSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFk
Li41NmE1OWYyZGE5ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQog
ewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVy
OjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3Ry
aW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29y
ZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRl
Y29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzguLjBhYzkwNGRkMGUz
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1
ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1
ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0cmlu
Zyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20u
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51
ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIx
MjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJj
b20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVz
dC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3Qu
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21h
aW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBs
ZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5j
b20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3Qi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
Zzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOF
w4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5k
ZXggNzFlZmVhY2NmYjg3Li5hNjI0MGEzNTMwZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAg
VEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNj
b3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsK
ICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBp
KTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAg
ICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3Jk
LnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50
b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNl
Lmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAg
ICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTQuLjFiMWQ5ZmYwZmU4
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlz
c2luZ0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3Rf
ZXhpc3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUy
LDcgKzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRo
Q29udGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9U
X05VTEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4o
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmlu
ZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRl
c3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEo
KSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcAppbmRleCBkYzRlMTI4MDg5MDIuLjRkMjdmNGZkNGI1NSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6
Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQi
X3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVD
MyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JT
dXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJs
YXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBj
aGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsi
aHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9z
LCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3Qv
P3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3Ms
ICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3Qi
X3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
LCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6
Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2du
aXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9z
fSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEi
KSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBT
dHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAn
XDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVt
bGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3Ry
aW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVj
a1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1
OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8v
aG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVz
dC5tbQppbmRleCA3NTMyODE4NGM0Y2UuLjdmYzdlZjQxOTRiMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJh
Y2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdp
bidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFz
ZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAg
ICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxz
KQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRp
b24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgog
ICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3Jh
cnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VU
cmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0
YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3
IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5E
YXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJl
bW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7
CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0
YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBh
dGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9y
ZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVs
ZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRl
bGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ss
IGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRh
YmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJX
aXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcg
KzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFz
ZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxl
dGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91
bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFz
ZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNy
ZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmlu
ZGV4IDExYjlkNjg2NTQzZi4uZWE3NGEzMDZiNzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBA
IFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRM
bFdOMDZyNDNhblFxWnlSYnU1SW9IbUhBeWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgi
CiAgICAgIm9EZGtLRjhjd29CZUFlaVJMa1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1Fn
MTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1H
L3RJNmdmSmlMbjA1VHo2bll6MzFZNDBGbTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElU
UDZsdjY5UXZhVjl6Iik7CisgICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9z
KTsKIAogICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NB
MmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIK
QEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0
eTIoKQogICAgICI0Nml6aG91M0dTS3ozWDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5
NGNyRDF4aDlhc2RqZzJEblhjIgogICAgICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1i
SWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhX
YkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJPaVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJt
SS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3gr
V0IvdjF0OD0iX3MpOwogCiAgICAgYXV0byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUo
cGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2
NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZj
M2NhM2Q1MjQ4MC4uNmFmNGU4OGE4MDJlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyAr
MjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tl
bihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAg
IEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJc
biIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJl
cXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2Vu
U2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikg
OiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVz
dGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICsz
MjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2Vu
KFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5k
YXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6
U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0
aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2Ug
PyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9z
ZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2ln
blVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWdu
aW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRv
a2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3It
PnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5
ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNv
dXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3Jl
dF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0
cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkg
KyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVl
c3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQppbmRleCA1YmNlYTgxMDkzY2YuLmRiZTgwMDg4N2M5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1Nh
bWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRp
cmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0
IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1Nh
bWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVS
ZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNP
RVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlv
bkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRv
U2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcg
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBz
b3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0
ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJz
LmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7
CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJf
cywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09F
UCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBv
bGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0
aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBl
Il9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBk
ZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3Ry
aW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAo
ZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAg
ICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ki
X3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9u
c2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNl
cnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBS
ZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCAr
NzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciog
c291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRv
IHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENv
bmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAo
c291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJj
ZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25D
T09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NP
cmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNP
RVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBk
ZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3Vy
Y2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFy
KiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxv
d1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUt
Y29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
QW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBT
aG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAg
YmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVz
ZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFu
ZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAg
YmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENP
RVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVj
dCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5z
YWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRy
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExLi5mNDcwZTZlY2E2YzggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0yMTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewog
ICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYp
IHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uo
e3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1
bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQp
LnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5y
ZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciop
bGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6
ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYi4uZWVlM2UwMjgxNWRlIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFy
ZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRt
bCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNv
bnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBz
cmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+
IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9
CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8
L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
CiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlLi45MDkyZGUwMDQyMzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlV
UkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVD
YW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAg
ICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJv
YXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJz
b2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCks
IDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmll
d0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMi4uYTVmN2JiZjU3YjliIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
CkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwp
CiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVu
dCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAq
dGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tCmluZGV4IDNhMmZhZGVhNmEwNC4uYzQzYWVjZDE4OWU3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwg
KilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJh
bWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0
cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyht
ZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5Yi4uMGYyYTdjN2QzOGIzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkg
QEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3
ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0g
ICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVl
KHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwK
KyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAg
ICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVz
dCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExl
bmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02
MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0
ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09V
VStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZ
NGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pH
L1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2
alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJ
OE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjRE
ZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2Rl
ZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNl
cnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95
OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZ
MXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAg
ICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRz
Z3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAg
ICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29k
ZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBy
ZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwo=
</data>
<flag name="commit-queue"
          id="485495"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457021</attachid>
            <date>2022-04-07 22:31:23 -0700</date>
            <delta_ts>2022-04-07 22:45:29 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>238977_String_fromLatin1_final_wip.patch</filename>
            <type>text/plain</type>
            <size>118206</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNC4uYjY0OTcwOTgwYWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVybWlu
YXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hhciop
OwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAgLy8g
Q29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGZy
b21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAvLyBG
SVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0ltcGwu
CkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1w
dHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRvcikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmlu
Zz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAvLyBU
aGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4
KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IGFmOTRiYjA2Y2MzOC4uOGJlMmY2MWY3OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3YXlz
IHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsKLSAg
ICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKKyAg
ICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExDX0NU
WVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVTIl9z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Yy4uNTRk
ODZjZjg2ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3
YmE5YTAwNTk2Li5hNmU1NDkxMTViOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWY8UlRDRGF0YUNo
YW5uZWxFdmVudD4gR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5l
bEV2ZW50KERvYwogICAgIGluaXQub3JkZXJlZCA9IG9yZGVyZWQ7CiAgICAgaW5pdC5tYXhQYWNr
ZXRMaWZlVGltZSA9IG1heFBhY2tldExpZmVUaW1lOwogICAgIGluaXQubWF4UmV0cmFuc21pdHMg
PSBtYXhSZXRyYW5zbWl0czsKLSAgICBpbml0LnByb3RvY29sID0gU3RyaW5nKHByb3RvY29sLmdl
dCgpKTsKKyAgICBpbml0LnByb3RvY29sID0gU3RyaW5nOjpmcm9tVVRGOChwcm90b2NvbC5nZXQo
KSk7CiAgICAgaW5pdC5uZWdvdGlhdGVkID0gbmVnb3RpYXRlZDsKICAgICBpbml0LmlkID0gaWQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggMjll
MjU1NzY0ZWEzLi5lMTY0NzBiOGE0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzAuLjVhOTMyYjFiNmM2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRw
VHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03
OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgp
CiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRj
VHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6
c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5k
ZXggZGNmN2FkMWU4YzcwLi5jNmMyZmI3NTUwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKQEAgLTQzLDE1ICs0MywxNSBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgZmlsbFJUQ1N0YXRzKFJUQ1N0YXRzUmVwb3J0OjpTdGF0cyYgc3RhdHMsIGNvbnN0IEdz
dFN0cnVjdHVyZQogICAgIGRvdWJsZSB0aW1lc3RhbXA7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVf
Z2V0X2RvdWJsZShzdHJ1Y3R1cmUsICJ0aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKICAgICAgICAg
c3RhdHMudGltZXN0YW1wID0gdGltZXN0YW1wOwotICAgIHN0YXRzLmlkID0gU3RyaW5nIHsgZ3N0
X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlkIikgfTsKKyAgICBzdGF0cy5pZCA9
IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAi
aWQiKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDUlRQU3RyZWFtU3RhdHMoUlRD
U3RhdHNSZXBvcnQ6OlJ0cFN0cmVhbVN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiB7CiAgICAgZmlsbFJUQ1N0YXRzKHN0YXRzLCBzdHJ1Y3R1cmUpOwogCi0gICAg
c3RhdHMudHJhbnNwb3J0SWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3Ry
dWN0dXJlLCAidHJhbnNwb3J0LWlkIikgfTsKLSAgICBzdGF0cy5jb2RlY0lkID0gU3RyaW5nIHsg
Z3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVjLWlkIikgfTsKKyAgICBz
dGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9z
dHJpbmcoc3RydWN0dXJlLCAidHJhbnNwb3J0LWlkIikpOworICAgIHN0YXRzLmNvZGVjSWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNv
ZGVjLWlkIikpOwogCiAgICAgdW5zaWduZWQgdmFsdWU7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVf
Z2V0X3VpbnQoc3RydWN0dXJlLCAic3NyYyIsICZ2YWx1ZSkpCkBAIC0xNjYsNyArMTY2LDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRzKFJUQ1N0YXRzUmVw
b3J0OjpPdXRib3VuZFJ0cFN0cmVhbVMKICAgICAgICAgc3RhdHMubmFja0NvdW50ID0gbmFja0Nv
dW50OwogCiAgICAgaWYgKGNvbnN0IGNoYXIqIHJlbW90ZUlkID0gZ3N0X3N0cnVjdHVyZV9nZXRf
c3RyaW5nKHN0cnVjdHVyZSwgInJlbW90ZS1pZCIpKQotICAgICAgICBzdGF0cy5yZW1vdGVJZCA9
IFN0cmluZyB7IHJlbW90ZUlkIH07CisgICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHJlbW90ZUlkKTsKIAogICAgIC8vIEZJWE1FCiAgICAgLy8gc3RhdHMudGFyZ2V0
Qml0cmF0ZSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKaW5kZXgg
NmExNjM2YzZkZGI2Li5iNzA2MzA3MjZmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJX
ZWJSVENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVu
Y29kaW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1
cgogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1m
cmFtZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJh
dGUgPSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0
ZXJzLnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1Bh
cmFtZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5Owog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJl
c29sdXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZmQ5Zjc4ZTdkMjE0Li4z
MjQyMDkwNjg3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVy
Ojp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04o
MSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fw
c19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9
IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJl
YWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aAppbmRleCBkMmFkZTg3MzBjMDQuLmFhNjFjNDFhZmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAg
ICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRp
b25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxs
b3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVu
Y3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxh
YmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAg
ICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGlu
MShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0K
ICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IGI2MTUwZGE0M2QxNy4uNWQ1NDE5ZTg0OGVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3
ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1N
YXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JV
RkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9T
SVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYo
Ik1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxh
dGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFz
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3Bs
aXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKaW5kZXggZTkyMzI0YWNi
ZjdlLi4yZGM2NDU1YjQ0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3Jl
cXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5k
ZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9S
KSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRh
aW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTEx
MDI1OTgzNS4uZWRhZTEyOTJmMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAK
QEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpwbGF0Zm9ybVN1
cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5nIEV4dGVuc2lvbnNH
TE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggMGE2YTg4Y2Yx
YWQ0Li44ZjU0NjZhNWEzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpn
ZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJp
bmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aGludChHQ0dM
ZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVy
L1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQx
MDU3ZWQuLmI5MjRkYWQzYjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwx
MSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmlu
ZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3ku
dmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAg
ICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
Tm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQ
YWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZp
Y2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4
NDcwYjg1Y2EuLmIyYzllZTU1ODNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJE
cml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2Uu
Y3BwCkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2
WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAg
ICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBw
b3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChh
cmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewot
ICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxl
bmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAg
ICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3Qp
IHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAg
ICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNTY2LDcgKzU2Niw3IEBAIGJv
b2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKEpTT046
Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICghbV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgp
KSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
U2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2gg
b3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJz
ZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIl9zKSkpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8
Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0
IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEuIElmIHJlcXVpcmVkIGNhcGFiaWxpdGll
cyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNPTiBPYmplY3QuCiAg
ICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAg
ICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJlZENhcGFiaWxpdGll
c1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBT
dHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlk
IGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAg
ICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlp
bmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgcmVxdWlyZWQgY2FwYWJp
bGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYgKCFyZXF1aXJlZENhcGFiaWxpdGllcykg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlz
TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0
aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9i
amVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBh
YmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAzLjIuIElmIGFsbCBmaXJzdCBtYXRjaCBj
YXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBj
b2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGlu
dmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+
IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0
JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0g
Zmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAg
aWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0
Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwogICAgICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAvLyA1LjEuIExldCB2YWxpZGF0ZWQgY2Fw
YWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGll
cyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcy4KICAgICAgICAgZmlyc3RN
YXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqZmlyc3RNYXRjaENhcGFi
aWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBh
YmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNP
Tjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0Lmlz
RW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90
Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMs
IEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Npb24KICAgICBpZiAobV9zZXNzaW9uKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0
ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIl9zKSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVu
Y3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8
Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRS
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGllc0xp
c3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5n
KCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Np
b25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBi
b29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYg
YWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVy
YXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFj
dGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1
cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0
JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUiX3Mp
OwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9y
IG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJrZXlEb3duIikK
ICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjsKICAgICBl
bHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBl
JyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTk1MCwxMiArMTk1MCwx
MiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpL
ZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2
YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1
cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0
byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAgICAgICAgaWYgKGtleS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUg
cG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1v
dmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAg
IGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJf
cykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFs
dWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIp
OworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJh
dGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7
CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rp
b24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICBp
ZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3QoKSkgewogICAgICAg
ICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmluZyhTZXNzaW9uOjp3
ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudElEKSB7Ci0g
ICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmln
aW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicg
aXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9u
Lm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBl
bGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2lu
dGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBz
CiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0gInBvaW50ZXIiKQogICAgICAgICAgICAg
ICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6
UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAy
NSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046
Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB4VmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkgewogICAgICAgICBhdXRvIHggPSB2YWx1
ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF4KSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGlu
dmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOwpA
QCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9u
KEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0
byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgewogICAgICAgICBhdXRvIHkg
PSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF5
KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3kn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi55ID0geS52YWx1
ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBw
cm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBl
bHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2VsIikKICAgICAgICAgYWN0aW9uU3VidHlw
ZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNlbDsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFj
dGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3Ry
aW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJE
b3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJi
dXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3Ig
cG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93
biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
fQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsKICAg
ICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5i
dXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIx
MDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihj
b25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAi
c2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xs
OwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGlu
dmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjEy
Nyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBk
ZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykpIHsKICAgICAgICAg
ICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRf
TUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFj
dGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24u
ZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsK
QEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0
ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAKICAgICBhdXRv
IHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmplY3QoKTsKICAgICBp
ZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1l
dGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50
ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAg
ICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNoIikKICAgICAgICAgcGFyYW1ldGVycy5w
b2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9u
IHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBz
ZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vz
c2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5j
ZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVj
dCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2Ug
aXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxB
Y3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAg
ZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0
U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGlkID0gYWN0
aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwogICAgIGlmICghaWQpIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBt
aXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNl
cXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIy
MjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHBy
b2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIAogICAgIGF1dG8mIGlu
cHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlucHV0U291cmNlKGlkLCBpbnB1dFNvdXJj
ZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1dFNv
dXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1
dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQog
CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElucHV0U291cmNlOjpUeXBlOjpQb2ludGVy
ICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0
IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJh
eSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25JdGVtcykgewotICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90
IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBp
biBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFj
dGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAg
ICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVu
Y2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5j
dGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBhcmFtZXRlcnMtPmdldEFycmF5KCJhY3Rp
b25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Ig
bm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiX3MpKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIv
Z3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJp
dmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFiYTdmLi5kYjk3ZmYwZmEyOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGll
cyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3Ry
aW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxp
bnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0
dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxK
U09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMm
IGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9
IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9T
VFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0g
U3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NU
UklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50
cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGll
cy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dlYkRyaXZlci93cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhLi5kYzkxZmIzY2I1Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0z
OSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFi
aWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAg
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1l
ID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJp
bmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwog
ICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25z
dCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2Fw
YWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJC
aW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJC
aW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3Nl
ckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAg
YXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6
YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZC4uNjQ1NWU4MWFmMWYy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENv
cGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJpbmcg
b3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RS
VUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5p
bXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1v
dmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29w
eShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09u
ZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyArNTMs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0
cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9z
IH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5ID0g
Y3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3JpZ2lu
YWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29w
eShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNzIs
NyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJp
bmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykK
IHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29w
eSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwtPmlt
cGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3Zl
UlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVk9w
dGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCIg
fTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENv
cHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3VudCgp
LCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lz
dGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmlu
ZGV4IDg2OGNjYmI5ZjMzNC4uZGIyNDY1MjM5Njg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBU
RVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1
Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3Ry
aW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hh
cmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxl
RGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmls
ZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAg
IEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjUuLjdmOTdiY2QyNzQzNyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2
MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdl
ciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
YSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2Up
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChs
YXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9z
LCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzLi5hNDg3ZTU3ZTlkMDQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBA
IC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVj
dG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVy
LnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3
ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAw
KTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZElu
dE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0g
Pj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
QUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEp
KSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdD
JywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxk
ZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNh
cGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQ
RUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQg
dG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNv
bnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScs
ICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIp
OwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNU
X0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5Miwz
MiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygp
LmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2Ug
dGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmlu
Z0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywx
MyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBF
WFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgog
ICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNp
dHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3Mp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWls
ZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5z
aHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMx
MSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShl
cXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxk
ZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAg
ICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2
NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygi
MTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsK
IAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygi
MTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUy
LDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0
b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
MyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzEu
LmJiMzMxNjViNjY3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
SW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRz
V2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1Qi
KTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0
YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
dGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikp
OwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJU
X0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNw
cAppbmRleCA4ODA5NGZiMWJiMmMuLmI0NDJlNDM2OGMwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3Jz
KQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0
cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAg
QVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcg
c3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmll
d0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7
IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNv
dW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1Zp
ZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5k
ZXggYzI1MzM4MmQzNGExLi5iYWY0ZDdhY2JlZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7
CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0
aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVy
cyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJh
Y3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwg
U3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0g
ICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBT
dHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBo
ZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0
cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAg
ICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1
Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29k
ZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRl
cmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3Ry
aW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAg
ICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygp
OwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAg
ICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBT
dHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVT
VChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNU
X1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5p
c0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxh
dGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmll
dyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJ
SSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJM
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3
MGFhZmE0Li41NTE3YWY1ZDc0MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0
Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEo
a3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
d3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwog
ICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJs
LnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJs
LnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29y
ZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9u
ZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0K
IAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAs
NDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmlu
ZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8g
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9h
L2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3Ry
aW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1
cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBA
IFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAg
VVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBV
UkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQg
e3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsK
ICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0
VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAg
VVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUx
Nik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIs
ICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJs
MTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFs
MiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3Ms
ICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZh
bDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsi
a2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsg
ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZh
bDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwg
dGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7
Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0
ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7
IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAg
ICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJf
cyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90
ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVz
dCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAg
CiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3Qi
X3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJf
cywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAi
Il9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsg
IiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzcuLmEyMmViMjNjY2JmNyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkg
QEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBG
cm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJp
bmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMi
IH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAg
bWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAK
ICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0
ZDQ1ZmJkZC4uNWIyMTcyZWMwMGI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRp
b25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVY
UEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFs
VmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4
Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50
YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
RXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9z
dHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxp
dGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRl
cmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zy
b21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBA
QCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBu
dWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsK
LSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0
cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShz
dHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyAr
MjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBl
eHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAg
ICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsK
KyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3Ry
aW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkK
QEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBF
Q1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5n
KCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ug
c2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJh
aWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMK
ICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFs
c2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMg
ImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9r
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90
IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
Im5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFy
dGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwg
MikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhC
aXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9z
LCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4
reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
IikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAg
RVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkp
OwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVD
VF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewot
ICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmlu
ZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVs
bCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAg
c3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3Ry
aW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJh
eSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFi
YyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9U
UlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmMuLmE5OTcxMjM0YzNjMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBh
cnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50
RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29u
c3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMo
U3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZy
b21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJ
KTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0
ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEz
NDFkNWIxLi45ZTM1ZDk1YmI1MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhl
IHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVN
b25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9u
aXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJf
cyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIw
NzI3ZmRlZi4uNzIzZDU4OGFhNDljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNU
KEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAg
ImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAg
ICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJ
SVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQ
YWlySW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50
KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVu
dCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3Rl
KSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBA
QCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAg
ICAgICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAg
ICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEo
ZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0
NzE5MDAwZGUxZC4uNTZhNTlmMmRhOWU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtl
eWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdl
dFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6Oktl
eWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVT
dHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFs
dWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWRE
ZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtl
eWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4Li4w
YWM5MDRkZDBlMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3Vm
Zml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmco
dXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsK
ICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3Ry
aW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNv
bSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRl
c3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4w
LjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5j
b20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21h
aW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50
dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQt
LS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5j
b20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVj
dGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2Nh
bGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWlu
LkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
TG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERh
dGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJh
c2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4Ny4uYTYyNDBhMzUzMGYxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDgg
KzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBz
bnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0
LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRv
cGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9
OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAg
ICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAg
ICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAg
ICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0Li4x
YjFkOWZmMGZlODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwog
fQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwg
Y3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAg
QVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkg
PT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6
ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91
cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0
RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyLi40ZDI3ZjRmZDRiNTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5j
b2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRl
eHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJp
bmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYw
JTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6
Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFi
c1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4x
KFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4x
Iik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAm
bGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9z
LCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0
dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9c
dHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDov
L2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRl
eHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3Ms
ICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDov
L2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJ
U08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0x
Iik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMw
LCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRo
PyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9z
LCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7
CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRz
KSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmco
KSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJU
ZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNl
VHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlLi43ZmM3ZWY0MTk0YjAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9E
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3Zl
IHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBh
bmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgog
ICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3Jh
cnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VU
cmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0
YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3
IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90
RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAv
LyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVz
LgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1w
b3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJh
c2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRo
RGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5E
YXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3
OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0
YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhl
IGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5z
IHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIz
NCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3Np
bmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBz
dGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBk
YXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFm
dGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8g
ZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERh
dGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3Rl
bTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsK
QEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VX
aGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0
cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAg
Ly8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0
aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxl
U3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0
NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
aGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxs
ZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2YuLmVhNzRhMzA2Yjc4NiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3
ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAg
ICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdr
bG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9j
V1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9K
Q0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8v
TmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2
OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAg
Ik1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtH
QTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0
ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29x
Zm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5
cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54
S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3
VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01H
M1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFz
ZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0
ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5t
bQppbmRleCA2YzNjYTNkNTI0ODAuLjZhZjRlODhhODAyZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpA
QCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAg
ICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBI
VFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3Qy
LnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJs
ZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBA
IC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRT
ZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmco
cmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWdu
aW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5n
KCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0
eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVz
dGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSAr
IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRp
YyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5n
UGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRv
a2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtl
eSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5
Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmLi5kYmU4MDA4ODdjOWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0g
Y2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VD
T0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9u
Q09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJh
bCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwg
ZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewog
ICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1U
eXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291
cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291
cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBz
b3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5n
KHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1F
bWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNv
bnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkK
LSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7
CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09F
UCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5h
dGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAog
ICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3Ry
aW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBA
IC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7
CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwot
ICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAm
JiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0
cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRl
c3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJj
bXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91
bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAm
JiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmln
aW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNU
X1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hv
dWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVz
KTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0
YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwg
Y29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4z
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09P
UFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBD
T0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNo
b3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBz
d2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBl
Y3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3Jp
Z2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BX
aXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
eyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNh
bWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVP
cmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAy
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25l
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcg
KndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMS4uZjQ3MGU2
ZWNhNmM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5l
Y3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rv
cjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7
ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwg
Wz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250
ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBb
PV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShW
ZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRU
UFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0s
IGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5
cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29y
a2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVz
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNv
bnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RS
ZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWIuLmVlZTNl
MDI4MTVkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDgg
KzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25z
dCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0n
aUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0K
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0
aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBj
b25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBp
ZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1
YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBf
V0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZS4uOTA5MmRlMDA0MjM3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNh
bkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1l
bnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENv
bnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0
KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6
W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmlu
ZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJW
aWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDIuLmE1ZjdiYmY1N2I5
YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0Nh
blBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFu
Y2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAg
TlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQuLmM0M2FlY2QxODllNyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9p
ZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9V
Ukw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1
bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0
aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
UEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3Mp
LCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWIuLjBmMmE3
YzdkMzhiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVy
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3
LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVw
Z3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdy
YWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRB
Y2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29j
a2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAor
ICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZh
bHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVk
ZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0p
OwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0
Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZ
ZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpq
cXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblli
Vzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1
IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1pr
N21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRl
ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1v
dmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4
X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNL
cjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVl
UGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0
QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5
Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3
PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAg
YXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtl
eSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457022</attachid>
            <date>2022-04-07 22:45:31 -0700</date>
            <delta_ts>2022-04-07 22:51:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220407224530.patch</filename>
            <type>text/plain</type>
            <size>136944</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAwMDNlZmI3YzEyMDQ1NTFlYWUyNzc2OTdk
OTdjYmUyNTAyNjZlMDUwLi5iNjQ5NzA5ODBhYmUzZjNjNzliOTQyZmEwODI2NTY2M2NlODI5YmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVy
bWluYXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hh
ciopOwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1
bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9m
IGZyb21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAv
LyBGSVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzKTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0
IGNoYXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0lt
cGwuCkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93
RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRv
cikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0
cmluZz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAv
LyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21V
VEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQ
dHI8U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXgu
Y3BwCmluZGV4IGFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIuLjhiZTJm
NjFmNzliNWM1YTk3NWNjNTExOThkMWI4ZWUwMjQ3MjNhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xh
bmd1YWdlVW5peC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBhbHdh
eXMgdGhlIHNhbWUgdmFsdWUuCiBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogewot
ICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwor
ICAgIGF1dG8gbG9jYWxlRGVmYXVsdCA9IFN0cmluZzo6ZnJvbUxhdGluMShzZXRsb2NhbGUoTENf
Q1RZUEUsIG51bGxwdHIpKTsKICAgICBpZiAobG9jYWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIlBPU0lYIikpCiAgICAgICAgIHJldHVybiAiZW4tVVMi
X3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIv
U291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOThiZjU2NmNlMjVjYTVl
NmNmMWY0MTlkNDMwNzUyMmE5MzUxYzU0NC4uNTRkODZjZjg2ZTlmZjgwOGQzNDg0ZWI2MDQ4MzUx
NmUxMmU1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKQEAgLTM5LDcgKzM5
LDcgQEAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKICAgICBXVEZMb2dBbHdheXMoIldFQktJVF9E
RUJVRyBpcyBub3QgZW1wdHksIGJ1dCB0aGlzIGlzIGEgcmVsZWFzZSBidWlsZC4gTm90aWNlIHRo
YXQgbWFueSBsb2cgbWVzc2FnZXMgd2lsbCBvbmx5IGFwcGVhciBpbiBhIGRlYnVnIGJ1aWxkLiIp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gU3RyaW5nIHsgbG9nRW52IH07CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbUxhdGluMShsb2dFbnYpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmluZGV4IGJh
N2JhOWEwMDU5NmQ2NTBlNGM3YjNmNzgzYzcyN2IyMWE1NWRkNjYuLmE2ZTU0OTExNWI5MjM2ZmYy
OWUxMWE4ZDljMTEzYmYwNjkzNjhlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWY8UlRDRGF0YUNo
YW5uZWxFdmVudD4gR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5l
bEV2ZW50KERvYwogICAgIGluaXQub3JkZXJlZCA9IG9yZGVyZWQ7CiAgICAgaW5pdC5tYXhQYWNr
ZXRMaWZlVGltZSA9IG1heFBhY2tldExpZmVUaW1lOwogICAgIGluaXQubWF4UmV0cmFuc21pdHMg
PSBtYXhSZXRyYW5zbWl0czsKLSAgICBpbml0LnByb3RvY29sID0gU3RyaW5nKHByb3RvY29sLmdl
dCgpKTsKKyAgICBpbml0LnByb3RvY29sID0gU3RyaW5nOjpmcm9tVVRGOChwcm90b2NvbC5nZXQo
KSk7CiAgICAgaW5pdC5uZWdvdGlhdGVkID0gbmVnb3RpYXRlZDsKICAgICBpbml0LmlkID0gaWQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggMjll
MjU1NzY0ZWEzNWYxMjRlMWM5YmRhMTNmOTgzNTkwYTA4MTJiNy4uZTE2NDcwYjhhNDI5ZDNhODUy
YzRkN2JiMWI2NWYxZWI0M2EwMjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVk
aWFFbmRwb2ludC5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxz
dGQ6OnBhaXI8UlRDU2RwVHlwZSwgU3RyaW5nPj4gZmV0Y2hEZXNjcmlwdGlvbihHc3RFbGVtZW50
KgogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZHBTdHJpbmcoZ3N0X3NkcF9tZXNzYWdlX2FzX3Rl
eHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgIEdTVF9UUkFDRV9PQkpFQ1Qod2VicnRjQmluLCAi
JXMtZGVzY3JpcHRpb24gU0RQOiAlcyIsIG5hbWUsIHNkcFN0cmluZy5nZXQoKSk7Ci0gICAgcmV0
dXJuIHsgeyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0KCkpLCBT
dHJpbmcgeyBzZHBTdHJpbmcuZ2V0KCkgfSB9IH07CisgICAgcmV0dXJuIHsgeyBmcm9tU2Vzc2lv
bkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0KCkpLCBTdHJpbmc6OmZyb21MYXRpbjEo
c2RwU3RyaW5nLmdldCgpKSB9IH07CiB9CiAKIHN0YXRpYyBHc3RXZWJSVENTaWduYWxpbmdTdGF0
ZSBmZXRjaFNpZ25hbGluZ1N0YXRlKEdzdEVsZW1lbnQqIHdlYnJ0Y0JpbikKQEAgLTQ1Niw3ICs0
NTYsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZv
KEdzdFNEUE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIG1fbWVkaWFGb3JNaWQuc2V0KFN0cmluZyB7IG1pZCB9LCBnX3N0cl9lcXVh
bChtZWRpYVR5cGUsICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
byA6IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKKyAgICAgICAgbV9tZWRpYUZv
ck1pZC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZCksIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwg
ImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogCiAgICAgICAgIC8vIGh0dHBzOi8vZ2l0bGFiLmZy
ZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFkLy0vbWVyZ2VfcmVxdWVzdHMv
MTkwNwogICAgICAgICBpZiAoc2RwTWVkaWFIYXNBdHRyaWJ1dGVLZXkobWVkaWEsICJpY2UtbGl0
ZSIpKSB7CkBAIC03MzMsNyArNzMzLDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojph
ZGRSZW1vdGVTdHJlYW0oR3N0UGFkKiBwYWQpCiAgICAgYXV0byBzZHBTdHJpbmcgPSBtYWtlU3Ry
aW5nKHNkcC5nZXQoKSk7CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBuYW1lKGdzdF9wYWRfZ2V0
X25hbWUocGFkKSk7Ci0gICAgU3RyaW5nIGxhYmVsKG5hbWUuZ2V0KCkpOworICAgIGF1dG8gbGFi
ZWwgPSBTdHJpbmc6OmZyb21MYXRpbjEobmFtZS5nZXQoKSk7CiAgICAgYXV0byBrZXkgPSBtYWtl
U3RyaW5nKCJtc2lkOiIpOwogICAgIGF1dG8gbGluZXMgPSBzZHBTdHJpbmcuc3BsaXQoJ1xuJyk7
CiAgICAgZm9yIChhdXRvJiBsaW5lIDogbGluZXMpIHsKQEAgLTEwODUsOSArMTA4NSw5IEBAIHZv
aWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uU3VjY2Vl
ZGVkKEdVbmlxdWVQdHI8R3N0V2ViCiAKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZHAoZ3N0
X3NkcF9tZXNzYWdlX2FzX3RleHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgICAgICBpZiAobV9p
c0luaXRpYXRvcikKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9m
ZmVyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsKKyAgICAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShz
ZHAuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsKKyAgICAg
ICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJp
bmc6OmZyb21MYXRpbjEoc2RwLmdldCgpKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExMjUsNyArMTEy
NSw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycygp
CiAgICAgICAgIGlmICghcmVjZWl2ZXIgfHwgIW1pZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdU
Rjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3Vy
cmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmcgeyBtaWQuZ2V0KCkgfSkpOworICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihXVEY6Om1ha2VV
bmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1cnJlbnQpKSwg
bV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZC5nZXQoKSkpKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJh
Y2tlbmQuY3BwCmluZGV4IGU3NzhmNmQ0ZjBjMGI0Njc4MjMwYzYyY2Q2NjAyYThlOWM2MTNmYmEu
LjVhOTMyYjFiNmM2OWVmNWNmMTk5NmZjMzQ3ZmQyYWQzYjJlZTU0NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcApAQCAtNzks
NyArNzksNyBAQCBTdHJpbmcgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQoKQog
ewogICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbWlkOwogICAgIGdfb2JqZWN0X2dldChtX3J0Y1Ry
YW5zY2VpdmVyLmdldCgpLCAibWlkIiwgJm1pZC5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgcmV0
dXJuIFN0cmluZyB7IG1pZC5nZXQoKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEo
bWlkLmdldCgpKTsKIH0KIAogdm9pZCBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6OnN0
b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCmluZGV4
IGRjZjdhZDFlOGM3MDhhYWZjZWU1YzkwZjA2OTAzNDIxZWM1MWFmMDUuLmM2YzJmYjc1NTA4YTQz
MmY3NzRlZTY5YThjNjljNzk4OWExZmIxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJTdGF0c0NvbGxlY3Rvci5jcHAKQEAgLTQzLDE1ICs0MywxNSBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgZmlsbFJUQ1N0YXRzKFJUQ1N0YXRzUmVwb3J0OjpTdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0
cnVjdHVyZQogICAgIGRvdWJsZSB0aW1lc3RhbXA7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0
X2RvdWJsZShzdHJ1Y3R1cmUsICJ0aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKICAgICAgICAgc3Rh
dHMudGltZXN0YW1wID0gdGltZXN0YW1wOwotICAgIHN0YXRzLmlkID0gU3RyaW5nIHsgZ3N0X3N0
cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlkIikgfTsKKyAgICBzdGF0cy5pZCA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQi
KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDUlRQU3RyZWFtU3RhdHMoUlRDU3Rh
dHNSZXBvcnQ6OlJ0cFN0cmVhbVN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiB7CiAgICAgZmlsbFJUQ1N0YXRzKHN0YXRzLCBzdHJ1Y3R1cmUpOwogCi0gICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAidHJhbnNwb3J0LWlkIikgfTsKLSAgICBzdGF0cy5jb2RlY0lkID0gU3RyaW5nIHsgZ3N0
X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVjLWlkIikgfTsKKyAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAidHJhbnNwb3J0LWlkIikpOworICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVj
LWlkIikpOwogCiAgICAgdW5zaWduZWQgdmFsdWU7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0
X3VpbnQoc3RydWN0dXJlLCAic3NyYyIsICZ2YWx1ZSkpCkBAIC0xNjYsNyArMTY2LDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRzKFJUQ1N0YXRzUmVwb3J0
OjpPdXRib3VuZFJ0cFN0cmVhbVMKICAgICAgICAgc3RhdHMubmFja0NvdW50ID0gbmFja0NvdW50
OwogCiAgICAgaWYgKGNvbnN0IGNoYXIqIHJlbW90ZUlkID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInJlbW90ZS1pZCIpKQotICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0
cmluZyB7IHJlbW90ZUlkIH07CisgICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHJlbW90ZUlkKTsKIAogICAgIC8vIEZJWE1FCiAgICAgLy8gc3RhdHMudGFyZ2V0Qml0
cmF0ZSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKaW5kZXggNmEx
NjM2YzZkZGI2ZTZmYjU5NWE4YzVkMmZlMjBiZDczNzQ2MWE0Ny4uYjcwNjMwNzI2ZjNjYzBhYTEx
ZDczYzljYjc2YTIyNTYxZGRhM2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJU
Q1V0aWxzLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgUlRDUnRwRW5jb2Rp
bmdQYXJhbWV0ZXJzIHRvUlRDRW5jb2RpbmdQYXJhbWV0ZXJzKGNvbnN0IEdzdFN0cnVjdHVyCiAg
ICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQ2NChydGNQYXJhbWV0ZXJzLCAibWF4LWZyYW1l
cmF0ZSIsICZtYXhGcmFtZXJhdGUpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heEZyYW1lcmF0ZSA9
IG1heEZyYW1lcmF0ZTsKIAotICAgIHBhcmFtZXRlcnMucmlkID0gU3RyaW5nIHsgZ3N0X3N0cnVj
dHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFtZXRlcnMsICJyaWQiKSB9OworICAgIHBhcmFtZXRlcnMu
cmlkID0gU3RyaW5nOjpmcm9tVVRGOChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1l
dGVycywgInJpZCIpKTsKIAogICAgIGRvdWJsZSBzY2FsZVJlc29sdXRpb25Eb3duQnk7CiAgICAg
aWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RvdWJsZShydGNQYXJhbWV0ZXJzLCAic2NhbGUtcmVzb2x1
dGlvbi1kb3duLWJ5IiwgJnNjYWxlUmVzb2x1dGlvbkRvd25CeSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZDlmNzhlN2QyMTRlODk5MDhh
MDY1OGFiZGY2ZTk1NzA2OTdmYmI2Li4zMjQyMDkwNjg3Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRk
ZjYzYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBk
YXRlQ29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIw
LCAwKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0
X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJp
bmcgeyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZy
b21MYXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5k
V2FpdChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCA3YTM2MjYzZmUwMTEz
NDQwZTU0NTZjMTkyZDlhMTg0NTI5Yzk1Yjk4Li5kNDIwZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThm
YzM2N2U0ZDNhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtNjMxLDcgKzYz
MSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZUdzdFN0cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVs
ZElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBncG9pCiB7CiAgICAgaWYgKGF1dG8ganNvblZhbHVl
ID0gZ3N0U3RydWN0dXJlVmFsdWVUb0pTT04odmFsdWUpKSB7CiAgICAgICAgIGF1dG8qIG9iamVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNPTjo6T2JqZWN0Kj4odXNlckRhdGEpOwotICAgICAgICBv
YmplY3QtPnNldFZhbHVlKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpz
b25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3Ry
aW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpKSwganNvblZhbHVlLT5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IGJkNmJlNmY3YTYzMGUzNmNj
N2JmMTU4NTJiNjBlMjIxYjE2NzI0NzUuLjY3ZDcwY2JjZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQz
ODExNjYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
CkBAIC0xNzYsNyArMTc2LDcgQEAgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxv
b2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkVsZW1lbnQKICAgICBpZiAoc2hv
dWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPT0gQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXI6Olll
cykgewogICAgICAgICBmb3IgKEdMaXN0KiBmYWN0b3JpZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3Jp
ZXM7IGZhY3RvcmllcyA9IGdfbGlzdF9uZXh0KGZhY3RvcmllcykpIHsKICAgICAgICAgICAgIGF1
dG8qIGZhY3RvcnkgPSByZWludGVycHJldF9jYXN0PEdzdEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9y
aWVzLT5kYXRhKTsKLSAgICAgICAgICAgIFN0cmluZyBtZXRhZGF0YSB7IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9
OworICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfZWxl
bWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9L
TEFTUykpOwogICAgICAgICAgICAgYXV0byBjb21wb25lbnRzID0gbWV0YWRhdGEuc3BsaXQoJy8n
KTsKICAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmNvbnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAg
ICAgICAgICAgICAgICAgaXNVc2luZ0hhcmR3YXJlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWJkMzYyOTYyYTQzNTYwODIy
MzNjYjE0YTk5MDdkOTA2MzRhNmRjNy4uMDFmZWZlYTMyZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2
OTBmYmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50VHlwZSYsIE1lZGlhU291cgogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0pCiB7CiAgICAgbV9zdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKLSAgICBsb2FkKFN0cmluZygi
bWVkaWFzdHJlYW06Ly8iKSArIHN0cmVhbS5pZCgpKTsKKyAgICBsb2FkKG1ha2VTdHJpbmcoIm1l
ZGlhc3RyZWFtOi8vIiwgc3RyZWFtLmlkKCkpKTsKICAgICBzeW5jT25DbG9jayhmYWxzZSk7CiAK
ICAgICBtX3BsYXllci0+cGxheSgpOwpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkK
ICAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwg
JmRlYnVnLm91dFB0cigpKTsKICAgICAgICAgR1NUX0VSUk9SKCJFcnJvciAlZDogJXMgKHVybD0l
cykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsK
KyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdl
KTsKIAogICAgICAgICBlcnJvciA9IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5Owog
ICAgICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVyci5nZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwg
R1NUX1NUUkVBTV9FUlJPUl9DT0RFQ19OT1RfRk9VTkQpCkBAIC0xODg5LDcgKzE4ODksNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdl
KiBtZXNzYWdlKQogICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVj
dHVyZSwgImh0dHAtaGVhZGVycyIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJQcm9jZXNzaW5nIEhUVFAgaGVhZGVyczogJSIgR1NUX1BUUl9GT1JNQVQsIHN0
cnVjdHVyZSk7CiAgICAgICAgICAgICBpZiAoY29uc3QgY2hhciogdXJpID0gZ3N0X3N0cnVjdHVy
ZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVyaSIpKSB7Ci0gICAgICAgICAgICAgICAgVVJMIHVy
bCB7IFN0cmluZyB7IHVyaSB9IH07CisgICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZzo6
ZnJvbUxhdGluMSh1cmkpIH07CiAgICAgICAgICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogCiAgICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3Vy
bCkgewpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNvbmZpZ3VyZURvd25sb2FkQnVmZmVyKEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19v
YmplY3Rfc2V0KGVsZW1lbnQsICJ0ZW1wLXRlbXBsYXRlIiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5n
ZXQoKSwgbnVsbHB0cik7CiAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUmVjb25m
aWd1cmVkIGZpbGUgZG93bmxvYWQgdGVtcGxhdGUgZnJvbSAnJXMnIHRvICclcyciLCBvbGREb3du
bG9hZFRlbXBsYXRlLmdldCgpLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKIAotICAgIFN0
cmluZyBuZXdEb3dubG9hZFByZWZpeFBhdGggeyBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpIH07
CisgICAgYXV0byBuZXdEb3dubG9hZFByZWZpeFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEobmV3
RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSk7CiAgICAgcHVyZ2VPbGREb3dubG9hZEZpbGVzKG5ld0Rv
d25sb2FkUHJlZml4UGF0aC5yZXBsYWNlKCJYWFhYWFgiLCAiIikpOwogfQogCkBAIC0yNDcwLDEx
ICsyNDcwLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExv
Y2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2Yg
dGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1s
b2NhdGlvbiB0byBpdC4KICAgICAgICAgVVJMIGJhc2VVcmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5l
d0xvY2F0aW9uKSA/IFVSTCgpIDogbV91cmw7Ci0gICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFz
ZVVybCwgU3RyaW5nIHsgbmV3TG9jYXRpb24gfSk7CisgICAgICAgIFVSTCBuZXdVcmwgPSBVUkwo
YmFzZVVybCwgU3RyaW5nOjpmcm9tTGF0aW4xKG5ld0xvY2F0aW9uKSk7CiAKICAgICAgICAgR1Vu
aXF1ZU91dFB0cjxnY2hhcj4gcGxheWJpblVybFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1f
cGlwZWxpbmUuZ2V0KCksICJjdXJyZW50LXVyaSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBu
dWxscHRyKTsKLSAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmcgeyBwbGF5YmluVXJsU3Ry
LmdldCgpIH0gfTsKKyAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
cGxheWJpblVybFN0ci5nZXQoKSkgfTsKIAogICAgICAgICBpZiAocGxheWJpblVybCA9PSBuZXdV
cmwpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlBsYXliaW4g
YWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9uLiIpOwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9v
bCBpc01lZGlhRGlza0NhY2hlRGlzYWJsZWQoKQogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJ
U0tfQ0FDSEUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6Omdl
dGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKICAgICAgICAgaWYg
KCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdHJpcFdoaXRl
U3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCk7CiAgICAgICAgICAgICBy
ZXN1bHQgPSAodmFsdWUgPT0gIjEiIHx8IHZhbHVlID09ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIp
OwpAQCAtMzkxOCw3ICszOTE4LDcgQEAgSW5pdERhdGEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpwYXJzZUluaXREYXRhRnJvbVByb3RlY3Rpb25NZXNzYWdlKEdzdE1lc3MKICAgICAgICAg
ICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7CiAgICAgICAgICAgICBnc3RfZXZlbnRfcGFy
c2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxs
cHRyKTsKIAotICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlT
eXN0ZW1JZCB9LCBkYXRhIH0pOworICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5n
Ojpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtSWQpLCBkYXRhIH0pOwogICAgICAgICAgICAgbV9o
YW5kbGVkUHJvdGVjdGlvbkV2ZW50cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkp
OwogICAgICAgICB9CiAgICAgfQpAQCAtNDAzOSw3ICs0MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVByb3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQp
CiAgICAgY29uc3QgY2hhciogZXZlbnRLZXlTeXN0ZW1VVUlEID0gbnVsbHB0cjsKICAgICBHc3RC
dWZmZXIqIGluaXREYXRhID0gbnVsbHB0cjsKICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlv
bihldmVudCwgJmV2ZW50S2V5U3lzdGVtVVVJRCwgJmluaXREYXRhLCBudWxscHRyKTsKLSAgICBp
bml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJ
RCB9LCBpbml0RGF0YSB9KTsKKyAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0
cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbVVVSUQpLCBpbml0RGF0YSB9KTsKIH0KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OndhaXRpbmdGb3JLZXkoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Ry
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDAzZWRh
YzhjOGU5N2JiMWVhYTRiMzNiM2Y0NDU5YWNkYWRmYjk0NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVm
NWRmN2JmOGJjZTVkZWMyZjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXI6OmdldExhbmd1YWdlQ29kZShHc3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2
YQogewogICAgIFN0cmluZyBsYW5ndWFnZTsKICAgICBpZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdf
TEFOR1VBR0VfQ09ERSwgbGFuZ3VhZ2UpKSB7Ci0gICAgICAgIGxhbmd1YWdlID0gU3RyaW5nIHsg
Z3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEo
KSkgfTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRf
bGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkpOwogICAgICAg
ICBHU1RfREVCVUcoIkNvbnZlcnRlZCB0cmFjayAlZCdzIGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwg
bV9pbmRleCwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIGlmIChsYW5ndWFnZSAh
PSB2YWx1ZSkgewogICAgICAgICAgICAgdmFsdWUgPSBsYW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEs
NyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0
YWdzLCBjb25zdCBnY2hhciogdGFnTmFtZSwgUwogICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRh
Z1ZhbHVlOwogICAgIGlmIChnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAm
dGFnVmFsdWUub3V0UHRyKCkpKSB7CiAgICAgICAgIEdTVF9ERUJVRygiVHJhY2sgJWQgZ290ICVz
ICVzLiIsIG1faW5kZXgsIHRhZ05hbWUsIHRhZ1ZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUg
PSBTdHJpbmdUeXBlIHsgdGFnVmFsdWUuZ2V0KCkgfTsKKyAgICAgICAgdmFsdWUgPSBTdHJpbmdU
eXBlIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHRhZ1ZhbHVlLmdldCgpKSB9OwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0
cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzlj
OTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9H
U3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5
LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93
ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2Jv
eGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChz
dHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAg
ICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93
ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5k
KFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsK
ICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGI2MTUwZGE0M2QxNzg0ZmQ1NTI1ZmJiZmE5
Yjg1MjcwZWUwMzA5OWQuLjVkNTQxOWU4NDhlYTY2ZTQ1ZjVkODMzNWI1Yzk2MmNlNjQ0NTlkNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHNpemVfdCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCkgY29uc3QKICAgICAgICAgLy8gICAg
ICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScKICAgICAgICAgLy8gICAgICAgICAg
IE1TRV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcKIAotICAgICAgICBTdHJp
bmcgcyhzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJNU0VfTUFYX0JVRkZFUl9TSVpFIikp
OwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBWZWN0b3I8U3RyaW5n
PiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOwogICAgICAgICAgICAgZm9yIChjb25zdCBTdHJpbmcm
IGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNw
cAppbmRleCBlOTIzMjRhY2JmN2U0ZmUwYWFiZTI5MjM3MzQ1MjE0Njg0Y2FlMjljLi4yZGM2NDU1
YjQ0MjQzMzIxOWQxM2Y5N2I2Mjc3YzgwNzI1ZjU2Nzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uLmNwcApAQCAtNzQsOCArNzQsOCBAQCBFeHRlbnNpb25zR0xPcGVuR0xD
b21tb246OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCog
Y29udAogICAgICwgbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemUoZmFsc2Up
CiAgICAgLCBtX3VzZUluZGV4ZWRHZXRTdHJpbmcodXNlSW5kZXhlZEdldFN0cmluZykKIHsKLSAg
ICBtX3ZlbmRvciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKEdMX1ZFTkRPUikpKTsKLSAgICBtX3JlbmRlcmVyID0gU3RyaW5nKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CisgICAgbV92
ZW5kb3IgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7CisgICAgbV9yZW5kZXJlciA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JF
TkRFUkVSKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdmVuZG9yQ29tcG9uZW50cyA9IG1fdmVu
ZG9yLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkuc3BsaXQoJyAnKTsKICAgICBpZiAodmVuZG9y
Q29tcG9uZW50cy5jb250YWlucygibnZpZGlhIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFl
MTI5MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5H
TEVTOjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4g
U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhU
RU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
aW5kZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVh
M2U3YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRl
eHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3Bw
CmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAzYjFmMGVlNWMuLmI5MjRkYWQz
YjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAt
MTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNlc3Npb246OnBhZ2VMb2Fk
U3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBhYmlsaXRpZXMoKS5wYWdl
TG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
Tm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiX3Mp
OwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIl9zKTsKICAgICB9CiAK
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9X
ZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5j
cHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgxZDEwYTU5YmVjMi4uYjJjOWVl
NTU4M2FmZWNmYmI5OTZiOGZlYWMyNzYyNGZkMGRkMzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuY3BwCkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6
OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0
YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0g
fTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlm
ICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5p
c051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3Ry
TGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhv
c3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0
aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxl
bmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RT
dHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNTY2LDcg
KzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0
aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICghbV9zZXNzaW9uLT5p
c0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25J
RCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcu
Il9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03MTQsMTQgKzcxNCwx
NCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEuIElmIHJlcXVpcmVk
IGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNP
TiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJl
ZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRj
aCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJl
c3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVk
Q2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYgKCFyZXF1aXJlZENh
cGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyJfcykp
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWZp
cnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAzLjIuIElmIGFsbCBm
aXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCByZXR1cm4gZXJyb3Ig
d2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJz
dE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxD
YXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3Qg
SlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBmaXJzdE1hdGNoQ2Fw
YWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChpKS0+YXNPYmplY3Qo
KTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5k
IGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwog
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAvLyA1LjEuIExldCB2
YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRl
IGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcy4KICAg
ICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqZmly
c3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGll
cykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlk
IGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsK
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzc5MSw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1hdGNoZWRDYXBhYmls
aXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQs
IFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAzLDcgKzgwMyw3IEBA
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNlc3Npb24uCiAgICAg
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Npb24KICAgICBpZiAo
bV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJN
YXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25z
Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyArODE5LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFy
YW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6Y29ubmVjdFRvQnJv
d3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGNh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWdu
ZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlk
IGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiJfcyk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwg
SlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJp
bmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsKLSAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBp
cyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3Npbmci
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTkzNSw3ICsx
OTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlmIChzdWJ0eXBlID09
ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5
RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGlu
dmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTk1
MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGNhc2UgQWN0aW9u
OjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUpIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3Np
bmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAgICAgICAgaWYgKGtl
eS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
aW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNoZWNrIHNpbmdsZSB1
bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9j
ZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFj
dGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUo
KmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlk
IGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0
aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9p
bnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwg
cwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3Qo
KSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmlu
ZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIGlmICghZWxl
bWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rp
b24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBl
OjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0gInBvaW50ZXIiKQog
ICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9y
aWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29y
aWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24i
X3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3Zl
QWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBp
ZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkgewogICAgICAgICBh
dXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAg
aWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi54ID0g
eC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50
ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMK
ICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgewogICAg
ICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAg
ICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24i
X3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlv
bi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVy
UGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2VsIikKICAgICAgICAg
YWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNlbDsKICAgICBlbHNl
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBv
ZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMDc0LDEyICsy
MDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5
cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMg
bWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRv
blZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVy
IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAg
ICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CkBA
IC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NX
aGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgZWxzZSBpZiAo
c3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3Vi
dHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwg
YWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBw
cm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAg
ICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykp
IHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRh
WFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7Ci0gICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGlu
dmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBT
dHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0g
YWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0
YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9NSU4pOwogICAgICAg
ICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVkn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0
YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBv
aW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBh
CiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmpl
Y3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2Jq
ZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBv
aW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6
T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNoIikKICAgICAgICAg
cGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsKICAgICBlbHNlIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlw
ZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUn
IGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkwLDcgKzIxOTAsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBh
Y3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMg
bm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rp
b24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBz
ZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAgIGlucHV0U291cmNl
VHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2UgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNl
cXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBh
dXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwogICAgIGlmICghaWQp
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMg
aW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIAog
ICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlucHV0U291cmNlKGlk
LCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJB
Y3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24n
dCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElucHV0U291cmNlOjpU
eXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
dHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNu
J3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9IGFjdGlvblNlcXVl
bmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25JdGVtcykgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGlu
dmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNl
c3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsr
aSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2Jq
ZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBh
Y3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJh
bWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBhcmFtZXRlcnMtPmdl
dEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlz
IGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHBy
ZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291cmNlL1dlYkRyaXZl
ci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFiYTdmZDI5ZWJiZTMx
ZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkzNjcwMTZmMWU1NjFlNzUy
M2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQog
Q2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsK
ICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9
IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQ
SV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJ
X1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAg
Y2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEw
MDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZk
MmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2
aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBA
IGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3Ry
aW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRp
ZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGll
cy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGll
cy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0
aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3Mg
fTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9i
amVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZTRkNTZjMGJlNDkyYTliZTIxYzhhZTY5YjcxNDNm
ZjAxYzM0ZmRkLi43NTk3MDcxYmNlYjE0OTQ2NmI2NGUxZmRlNThkYTZhYTkxMGVjOTJmIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjUgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5k
IG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFz
ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VS
TFBhcnNlclRleHRFbmNvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRy
YWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0
ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5r
YWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2Vi
S2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hU
VFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2Nr
ZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENl
cnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2
YXRlS2V5KToKKwogMjAyMi0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlcGxhY2UgZGVwcmVjYXRlZCBTdHJpbmcoY29uc3QgY2hhciopIHdpdGggU3Ry
aW5nOjpmcm9tTGF0aW4xKCkgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2Rh
YmRkMjRjMzFmYzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMx
ZDAwNTk1NjBhMTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
cm9zc1RocmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsK
LSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAg
ICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIg
fTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNy
b3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpA
QCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5n
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVm
KQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBF
Q1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBA
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAK
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNy
b3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwo
KS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVm
KCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
T3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRp
b25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIz
NCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAg
RVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwo
b3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJp
bmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBj
cm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgp
LT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVT
eXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAu
LmRiMjQ2NTIzOTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAg
cHJpdmF0ZToKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewog
ICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRG
aWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZp
bGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRh
IG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVt
OjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3Vj
Y2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBj
NDI5N2IwMWY0YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2Jl
YzdhMTAxMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51
bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNw
cApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRl
Z2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
YSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwg
TG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNh
c2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJG
QUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2Fl
ZmVjZGQ0MzJkNDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2
ODMwNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1
aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxk
ZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVs
dENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsK
KyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBl
bmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAg
ICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwg
MCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJz
OCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
MS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIp
OwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2Fw
YWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJp
bmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChT
dHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVp
bGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
Iik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdl
JywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwg
YnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywg
IiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwg
YnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
ICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
X3MpLCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVs
bHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIp
LCAiQiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAi
QiIsICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0
cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4
aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAg
ICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAi
Iik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZy
b20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlm
IHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFi
Y2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2Fw
YWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAg
ICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7
CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIs
MzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAg
ICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50
b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBz
aG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAg
YnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygp
IGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2Yg
dGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEu
YXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIp
LCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyks
IHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEg
PSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkK
QEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHko
KTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgp
LCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNU
X0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAg
Ly8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFw
cGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIu
cmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1
aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdC
dWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBz
dHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1Rf
RVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJp
bmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIs
NyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMj
IyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsK
LSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50
b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVp
bGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAg
ICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0z
MTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBF
Q1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJh
YmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAog
ICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5
KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVD
YXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09
IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1
aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxk
ZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9
IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRl
ciByZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsK
IApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmlu
ZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIp
OwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNp
dHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYy
YmUwYTIyNzFiODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJl
NmU0NDFkZWJjMjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0lt
cGxTdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRl
c3QgdEVTVCIpOworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJU
X1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQi
KSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICJ0ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwog
CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShTdHJpbmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxT
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmco
KSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z09wZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMu
LmI0NDJlNDM2OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEg
KzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09w
ZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3Ry
aW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIp
OwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAg
U3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0
cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmlu
Z1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmlu
Z0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcu
Y3BwCmluZGV4IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRk
N2FjYmVlM2Y2NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVs
bFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwot
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hh
cmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0
aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgp
OwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsK
KyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcg
QEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgp
LmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOwor
ICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8p
OwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2
LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9F
USgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNh
dmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0g
ICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9z
KTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBv
aW50cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4o
KTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1Qo
V1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykK
IAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJ
KCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+T
sSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6
ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNB
bGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXgg
ODM3MDU3MGFhZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1
OTdkM2Q4MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9V
UkwuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9y
Q29uc3RDaGFyKQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVD
VF9FUShrdXJsLnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ3d3cuZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmco
KSk7CiAgICAgRVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAs
IGt1cmwucG9ydCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiks
IGt1cmwudXNlcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBh
c3N3b3JkKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0
aCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhD
b21wb25lbnQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAg
ICBFWFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkp
OwogfQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBA
IC04MCw0MyArODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFz
U3RyaW5nKQogVEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAg
YXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zh
cj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3
d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4
Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92
YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2Rm
Oi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFV
UklTdHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxE
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3
dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3Ms
ICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDEsIHVybDIpLCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgs
NjcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAK
ICAgICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwog
ICAgIFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IzNCB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9y
MzQpOwogICAgIAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiks
IHRlc3RWZWN0b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEz
MTQge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2
YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAK
ICAgICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxIl9zKTsKICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7
IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0
b3IxNTE2KTsKICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJr
ZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3Mg
fSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVS
TCB1cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5
Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9
LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3Mg
fSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTcsIHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtl
eTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIw
IHsgeyAia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJs
MjApLCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0
In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwy
MiksIHRlc3RWZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3Qi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
MzI0IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0
KTsKICAgICAKICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz8/Il9zKTsKICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAi
Lz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsK
ICAgICAKICAgICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89
dGVzdCJfcyk7CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwg
eyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwyOSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMx
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwz
MiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIg
eyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDMxLCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwy
NiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2
IHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwyNSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2Jl
MzI4MDQ5OTQzNTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5
NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3Rvciwg
TWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAg
IG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQo
U3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsg
ImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOwor
ICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3Mp
OwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFs
dWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBi
OTMzNGQ0NWZiZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0
ZmY5MTI1YWQ1MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3Jl
YXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1
Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAg
IEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRl
cmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUku
aXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBz
eW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlh
QVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFs
Il9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJv
bUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJp
bmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21M
aXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmlu
Z0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAs
NyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmlu
ZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmco
KTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5n
IHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJp
bmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJV
RShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEs
NyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmlu
ZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAK
LSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVk
U3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJh
bCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBF
WFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9G
QUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYg
d2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0Rv
dWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgx
LjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUg
dHJhaWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRl
ZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4g
ZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9r
KTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2gg
YXMgImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0Rv
dWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUo
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9r
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywg
bm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIiku
dG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2sp
KTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhT
dGFydGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3Qi
KSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5p
czhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0
Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFy
dGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi
5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hh
c0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwg
MCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpm
cm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVY
UEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZy
b21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQog
ewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0
cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlz
TnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAg
ICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwg
U3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJB
cnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEo
ImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVD
VF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFi
ODU5Li5hOTk3MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHAKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwg
UGFyc2luZ0ZhaWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBj
b25zdCBjaGFyIG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1
cyhTdHJpbmcgeyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2Vy
OjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6
ZnJvbUxhdGluMShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9z
LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVND
SUkpOwogICAgIAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIw
YTM0MWQ1YjFjOGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1
MzRkNzMzNWQ4MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5n
IEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRo
ZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhp
cyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1v
bml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3Qi
X3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMg
c29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JU
ZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBi
MDcyN2ZkZWYyOTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0
YjQ2ZjMxODBkZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNU
KEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAg
ImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAg
ICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJ
SVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQ
YWlySW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50
KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVu
dCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3Rl
KSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBA
QCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAg
ICAgICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAg
ICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEo
ZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0
NzE5MDAwZGUxZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlk
MWM3M2Q3NTdjYTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5
ZWRDb2RpbmcsIFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0
U3RyaW5nKQogewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5
ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0
cmluZywgU3RyaW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1
ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERl
Y29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5
ZWRDb2RpbmcsIEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRm
YWEyNzExMDg1ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0
NWRmY2JlOTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZp
eCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0
ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmlu
ZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20i
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51
ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4w
LjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20i
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29t
LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHci
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFz
ZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0t
YXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29t
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rp
b25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxo
b3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4
YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5F
eGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxv
Y2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNl
LmNwcAppbmRleCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0
MGEzNTMwZjE0Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQz
Miw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnBy
aW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVk
IiwgaSk7CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGlj
XyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9Owot
ICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAg
IHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICBy
ZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBk
YXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3
MTI5MmZjMWNjMmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVj
ZmYzYmUzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1No
YXJlZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1No
YXJlZEJ1ZmZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50
c09mTWlzc2luZ0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0
ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1
dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5n
KCJub3RfZXhpc3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAK
QEAgLTUyLDcgKzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVh
dGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NF
UlRfTk9UX05VTEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBz
dHJsZW4oRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09
IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1
ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCkt
PmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4
dEVuY29kaW5nLmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5
ZDczLi40ZDI3ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4
dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5j
b2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUi
aHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5
OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9z
dC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1
ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJp
bmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGlu
MSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0
cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0
dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVy
eSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5j
b2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVl
cnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5y
ZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4
NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwog
ICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0
NTEsICdcMCd9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3
aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1w
dHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAg
IGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZp
c284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9z
LCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3
c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAu
LjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVkMjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBE
ZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBv
cmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0
YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5T
U3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJl
Y3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2Vy
PiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQ
YXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
bigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRF
U1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3Qp
CiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUg
aW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAg
IE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlE
aXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFj
a2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJh
c2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBA
IFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VG
YWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9y
bWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxl
cy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVt
cG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFi
YXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0
aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsy
MzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRy
eUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBi
ZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFz
ZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRo
ZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBk
aXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNl
cyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMx
NCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0
YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8g
ZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ug
c2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0
YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5t
bQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMw
NmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWViZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3
IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFU
WHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhBeWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpL
ZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJMa1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29T
a1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlp
cm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBGbTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJn
cElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6
Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdE
Q0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhN
QyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVu
dGl0eTIoKQogICAgICI0Nml6aG91M0dTS3ozWDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFF
Z3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAgICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4
aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFL
MmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJPaVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAg
ICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXEx
Q3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNv
ZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJh
c2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4
IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEwZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlh
NTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3
ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRv
a2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAg
ICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFc
clxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9r
ZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4i
KSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6
OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcg
KzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9r
ZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0
LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRT
dHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBz
aWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNp
Z25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBh
bGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rv
ci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
ZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygi
c291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2Vj
cmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3Rp
bmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgo
KSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVx
dWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgw
MDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNT
YW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNT
YW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRl
UmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VD
T0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRp
b25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBk
b1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
c291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAi
dGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkp
OworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNP
RVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVz
dGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlw
ZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0
cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYg
KGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAg
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3Bv
bnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQ
UmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDgg
Kzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIq
IHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhD
b25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wg
c291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21w
KHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3Vy
Y2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9u
Q09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGlu
YXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VD
T0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYg
ZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291
cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAg
IGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lk
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hh
ciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5z
YWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxs
b3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJl
LWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8g
U2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2Fw
IGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1
c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2Fw
IGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBD
T0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJl
Y3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olllcywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4y
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09P
UFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJi
YTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRjNzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0yMTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewog
ICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYp
IHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uo
e3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1
bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQp
LnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5y
ZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciop
bGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6
ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJl
NTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJkMWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJl
bnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1s
Jz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29u
c3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNy
Yz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1
dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4i
CiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0K
ICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwv
c2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkK
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51
Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51
Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4NTQ3
Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJM
Lm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2Fu
Q29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAg
IAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2Fy
ZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29s
dXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAx
KTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzViMGI4
M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBA
IC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAg
ICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAq
KVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4
dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
CmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2FlY2Qx
ODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVS
TCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxl
cnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZToo
V2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5n
KG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3Nh
Z2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBlZGY1
YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZv
aWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5z
ZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29j
a2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAg
ICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1
ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAg
ICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAi
U2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0K
ICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6
Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcg
KzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQog
ICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQ
UFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFt
eVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85
REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5
OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1
cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2Rl
KHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0
aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6
OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVS
amtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2
ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVP
YnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpE
Z3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpm
VThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJp
dmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJu
IFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsK
</data>
<flag name="commit-queue"
          id="485494"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457023</attachid>
            <date>2022-04-07 22:49:58 -0700</date>
            <delta_ts>2022-04-08 07:20:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220407224957.patch</filename>
            <type>text/plain</type>
            <size>139406</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAwMDNlZmI3YzEyMDQ1NTFlYWUyNzc2OTdk
OTdjYmUyNTAyNjZlMDUwLi5iNjQ5NzA5ODBhYmUzZjNjNzliOTQyZmEwODI2NTY2M2NlODI5YmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1YmxpYzoKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51bGwtdGVy
bWluYXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBVQ2hh
ciopOwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEuCisgICAg
Ly8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1
bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9m
IGZyb21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4KLSAgICAv
LyBGSVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0ZWQuCi0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzKTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4xKGNvbnN0
IGNoYXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsgfQogCiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0cmluZ0lt
cGwuCkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93
RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNlcGFyYXRv
cikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0
cmluZz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAKKyAgICAv
LyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAvIGZyb21V
VEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAgICBSZWZQ
dHI8U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXgu
Y3BwCmluZGV4IGFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIuLjhiZTJm
NjFmNzliNWM1YTk3NWNjNTExOThkMWI4ZWUwMjQ3MjNhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xh
bmd1YWdlVW5peC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBhbHdh
eXMgdGhlIHNhbWUgdmFsdWUuCiBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogewot
ICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwor
ICAgIGF1dG8gbG9jYWxlRGVmYXVsdCA9IFN0cmluZzo6ZnJvbUxhdGluMShzZXRsb2NhbGUoTENf
Q1RZUEUsIG51bGxwdHIpKTsKICAgICBpZiAobG9jYWxlRGVmYXVsdC5pc0VtcHR5KCkgfHwgZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiQyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIlBPU0lYIikpCiAgICAgICAgIHJldHVybiAiZW4tVVMi
X3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIv
U291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOThiZjU2NmNlMjVjYTVl
NmNmMWY0MTlkNDMwNzUyMmE5MzUxYzU0NC4uNTRkODZjZjg2ZTlmZjgwOGQzNDg0ZWI2MDQ4MzUx
NmUxMmU1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKQEAgLTM5LDcgKzM5
LDcgQEAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKICAgICBXVEZMb2dBbHdheXMoIldFQktJVF9E
RUJVRyBpcyBub3QgZW1wdHksIGJ1dCB0aGlzIGlzIGEgcmVsZWFzZSBidWlsZC4gTm90aWNlIHRo
YXQgbWFueSBsb2cgbWVzc2FnZXMgd2lsbCBvbmx5IGFwcGVhciBpbiBhIGRlYnVnIGJ1aWxkLiIp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gU3RyaW5nIHsgbG9nRW52IH07CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbUxhdGluMShsb2dFbnYpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmluZGV4IGJh
N2JhOWEwMDU5NmQ2NTBlNGM3YjNmNzgzYzcyN2IyMWE1NWRkNjYuLmE2ZTU0OTExNWI5MjM2ZmYy
OWUxMWE4ZDljMTEzYmYwNjkzNjhlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWY8UlRDRGF0YUNo
YW5uZWxFdmVudD4gR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5l
bEV2ZW50KERvYwogICAgIGluaXQub3JkZXJlZCA9IG9yZGVyZWQ7CiAgICAgaW5pdC5tYXhQYWNr
ZXRMaWZlVGltZSA9IG1heFBhY2tldExpZmVUaW1lOwogICAgIGluaXQubWF4UmV0cmFuc21pdHMg
PSBtYXhSZXRyYW5zbWl0czsKLSAgICBpbml0LnByb3RvY29sID0gU3RyaW5nKHByb3RvY29sLmdl
dCgpKTsKKyAgICBpbml0LnByb3RvY29sID0gU3RyaW5nOjpmcm9tVVRGOChwcm90b2NvbC5nZXQo
KSk7CiAgICAgaW5pdC5uZWdvdGlhdGVkID0gbmVnb3RpYXRlZDsKICAgICBpbml0LmlkID0gaWQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggMjll
MjU1NzY0ZWEzNWYxMjRlMWM5YmRhMTNmOTgzNTkwYTA4MTJiNy4uZTE2NDcwYjhhNDI5ZDNhODUy
YzRkN2JiMWI2NWYxZWI0M2EwMjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVk
aWFFbmRwb2ludC5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxz
dGQ6OnBhaXI8UlRDU2RwVHlwZSwgU3RyaW5nPj4gZmV0Y2hEZXNjcmlwdGlvbihHc3RFbGVtZW50
KgogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZHBTdHJpbmcoZ3N0X3NkcF9tZXNzYWdlX2FzX3Rl
eHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgIEdTVF9UUkFDRV9PQkpFQ1Qod2VicnRjQmluLCAi
JXMtZGVzY3JpcHRpb24gU0RQOiAlcyIsIG5hbWUsIHNkcFN0cmluZy5nZXQoKSk7Ci0gICAgcmV0
dXJuIHsgeyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0KCkpLCBT
dHJpbmcgeyBzZHBTdHJpbmcuZ2V0KCkgfSB9IH07CisgICAgcmV0dXJuIHsgeyBmcm9tU2Vzc2lv
bkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0KCkpLCBTdHJpbmc6OmZyb21MYXRpbjEo
c2RwU3RyaW5nLmdldCgpKSB9IH07CiB9CiAKIHN0YXRpYyBHc3RXZWJSVENTaWduYWxpbmdTdGF0
ZSBmZXRjaFNpZ25hbGluZ1N0YXRlKEdzdEVsZW1lbnQqIHdlYnJ0Y0JpbikKQEAgLTQ1Niw3ICs0
NTYsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZv
KEdzdFNEUE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIG1fbWVkaWFGb3JNaWQuc2V0KFN0cmluZyB7IG1pZCB9LCBnX3N0cl9lcXVh
bChtZWRpYVR5cGUsICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
byA6IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKKyAgICAgICAgbV9tZWRpYUZv
ck1pZC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZCksIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwg
ImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogCiAgICAgICAgIC8vIGh0dHBzOi8vZ2l0bGFiLmZy
ZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFkLy0vbWVyZ2VfcmVxdWVzdHMv
MTkwNwogICAgICAgICBpZiAoc2RwTWVkaWFIYXNBdHRyaWJ1dGVLZXkobWVkaWEsICJpY2UtbGl0
ZSIpKSB7CkBAIC03MzMsNyArNzMzLDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojph
ZGRSZW1vdGVTdHJlYW0oR3N0UGFkKiBwYWQpCiAgICAgYXV0byBzZHBTdHJpbmcgPSBtYWtlU3Ry
aW5nKHNkcC5nZXQoKSk7CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBuYW1lKGdzdF9wYWRfZ2V0
X25hbWUocGFkKSk7Ci0gICAgU3RyaW5nIGxhYmVsKG5hbWUuZ2V0KCkpOworICAgIGF1dG8gbGFi
ZWwgPSBTdHJpbmc6OmZyb21MYXRpbjEobmFtZS5nZXQoKSk7CiAgICAgYXV0byBrZXkgPSBtYWtl
U3RyaW5nKCJtc2lkOiIpOwogICAgIGF1dG8gbGluZXMgPSBzZHBTdHJpbmcuc3BsaXQoJ1xuJyk7
CiAgICAgZm9yIChhdXRvJiBsaW5lIDogbGluZXMpIHsKQEAgLTEwODUsOSArMTA4NSw5IEBAIHZv
aWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uU3VjY2Vl
ZGVkKEdVbmlxdWVQdHI8R3N0V2ViCiAKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZHAoZ3N0
X3NkcF9tZXNzYWdlX2FzX3RleHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgICAgICBpZiAobV9p
c0luaXRpYXRvcikKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9m
ZmVyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsKKyAgICAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShz
ZHAuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsKKyAgICAg
ICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJp
bmc6OmZyb21MYXRpbjEoc2RwLmdldCgpKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExMjUsNyArMTEy
NSw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycygp
CiAgICAgICAgIGlmICghcmVjZWl2ZXIgfHwgIW1pZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdU
Rjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3Vy
cmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmcgeyBtaWQuZ2V0KCkgfSkpOworICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihXVEY6Om1ha2VV
bmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1cnJlbnQpKSwg
bV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZC5nZXQoKSkpKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJh
Y2tlbmQuY3BwCmluZGV4IGU3NzhmNmQ0ZjBjMGI0Njc4MjMwYzYyY2Q2NjAyYThlOWM2MTNmYmEu
LjVhOTMyYjFiNmM2OWVmNWNmMTk5NmZjMzQ3ZmQyYWQzYjJlZTU0NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcApAQCAtNzks
NyArNzksNyBAQCBTdHJpbmcgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQoKQog
ewogICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbWlkOwogICAgIGdfb2JqZWN0X2dldChtX3J0Y1Ry
YW5zY2VpdmVyLmdldCgpLCAibWlkIiwgJm1pZC5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgcmV0
dXJuIFN0cmluZyB7IG1pZC5nZXQoKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEo
bWlkLmdldCgpKTsKIH0KIAogdm9pZCBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6OnN0
b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCmluZGV4
IGRjZjdhZDFlOGM3MDhhYWZjZWU1YzkwZjA2OTAzNDIxZWM1MWFmMDUuLmM2YzJmYjc1NTA4YTQz
MmY3NzRlZTY5YThjNjljNzk4OWExZmIxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJTdGF0c0NvbGxlY3Rvci5jcHAKQEAgLTQzLDE1ICs0MywxNSBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgZmlsbFJUQ1N0YXRzKFJUQ1N0YXRzUmVwb3J0OjpTdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0
cnVjdHVyZQogICAgIGRvdWJsZSB0aW1lc3RhbXA7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0
X2RvdWJsZShzdHJ1Y3R1cmUsICJ0aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKICAgICAgICAgc3Rh
dHMudGltZXN0YW1wID0gdGltZXN0YW1wOwotICAgIHN0YXRzLmlkID0gU3RyaW5nIHsgZ3N0X3N0
cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlkIikgfTsKKyAgICBzdGF0cy5pZCA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQi
KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDUlRQU3RyZWFtU3RhdHMoUlRDU3Rh
dHNSZXBvcnQ6OlJ0cFN0cmVhbVN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiB7CiAgICAgZmlsbFJUQ1N0YXRzKHN0YXRzLCBzdHJ1Y3R1cmUpOwogCi0gICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAidHJhbnNwb3J0LWlkIikgfTsKLSAgICBzdGF0cy5jb2RlY0lkID0gU3RyaW5nIHsgZ3N0
X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVjLWlkIikgfTsKKyAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAidHJhbnNwb3J0LWlkIikpOworICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVj
LWlkIikpOwogCiAgICAgdW5zaWduZWQgdmFsdWU7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0
X3VpbnQoc3RydWN0dXJlLCAic3NyYyIsICZ2YWx1ZSkpCkBAIC0xNjYsNyArMTY2LDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRzKFJUQ1N0YXRzUmVwb3J0
OjpPdXRib3VuZFJ0cFN0cmVhbVMKICAgICAgICAgc3RhdHMubmFja0NvdW50ID0gbmFja0NvdW50
OwogCiAgICAgaWYgKGNvbnN0IGNoYXIqIHJlbW90ZUlkID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInJlbW90ZS1pZCIpKQotICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0
cmluZyB7IHJlbW90ZUlkIH07CisgICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHJlbW90ZUlkKTsKIAogICAgIC8vIEZJWE1FCiAgICAgLy8gc3RhdHMudGFyZ2V0Qml0
cmF0ZSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKaW5kZXggNmEx
NjM2YzZkZGI2ZTZmYjU5NWE4YzVkMmZlMjBiZDczNzQ2MWE0Ny4uYjcwNjMwNzI2ZjNjYzBhYTEx
ZDczYzljYjc2YTIyNTYxZGRhM2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJU
Q1V0aWxzLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgUlRDUnRwRW5jb2Rp
bmdQYXJhbWV0ZXJzIHRvUlRDRW5jb2RpbmdQYXJhbWV0ZXJzKGNvbnN0IEdzdFN0cnVjdHVyCiAg
ICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQ2NChydGNQYXJhbWV0ZXJzLCAibWF4LWZyYW1l
cmF0ZSIsICZtYXhGcmFtZXJhdGUpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heEZyYW1lcmF0ZSA9
IG1heEZyYW1lcmF0ZTsKIAotICAgIHBhcmFtZXRlcnMucmlkID0gU3RyaW5nIHsgZ3N0X3N0cnVj
dHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFtZXRlcnMsICJyaWQiKSB9OworICAgIHBhcmFtZXRlcnMu
cmlkID0gU3RyaW5nOjpmcm9tVVRGOChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1l
dGVycywgInJpZCIpKTsKIAogICAgIGRvdWJsZSBzY2FsZVJlc29sdXRpb25Eb3duQnk7CiAgICAg
aWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RvdWJsZShydGNQYXJhbWV0ZXJzLCAic2NhbGUtcmVzb2x1
dGlvbi1kb3duLWJ5IiwgJnNjYWxlUmVzb2x1dGlvbkRvd25CeSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZDlmNzhlN2QyMTRlODk5MDhh
MDY1OGFiZGY2ZTk1NzA2OTdmYmI2Li4zMjQyMDkwNjg3Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRk
ZjYzYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBk
YXRlQ29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIw
LCAwKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0
X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJp
bmcgeyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZy
b21MYXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5k
V2FpdChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCA3YTM2MjYzZmUwMTEz
NDQwZTU0NTZjMTkyZDlhMTg0NTI5Yzk1Yjk4Li5kNDIwZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThm
YzM2N2U0ZDNhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtNjMxLDcgKzYz
MSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZUdzdFN0cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVs
ZElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBncG9pCiB7CiAgICAgaWYgKGF1dG8ganNvblZhbHVl
ID0gZ3N0U3RydWN0dXJlVmFsdWVUb0pTT04odmFsdWUpKSB7CiAgICAgICAgIGF1dG8qIG9iamVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNPTjo6T2JqZWN0Kj4odXNlckRhdGEpOwotICAgICAgICBv
YmplY3QtPnNldFZhbHVlKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpz
b25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3Ry
aW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpKSwganNvblZhbHVlLT5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IGJkNmJlNmY3YTYzMGUzNmNj
N2JmMTU4NTJiNjBlMjIxYjE2NzI0NzUuLjY3ZDcwY2JjZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQz
ODExNjYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
CkBAIC0xNzYsNyArMTc2LDcgQEAgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxv
b2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkVsZW1lbnQKICAgICBpZiAoc2hv
dWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPT0gQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXI6Olll
cykgewogICAgICAgICBmb3IgKEdMaXN0KiBmYWN0b3JpZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3Jp
ZXM7IGZhY3RvcmllcyA9IGdfbGlzdF9uZXh0KGZhY3RvcmllcykpIHsKICAgICAgICAgICAgIGF1
dG8qIGZhY3RvcnkgPSByZWludGVycHJldF9jYXN0PEdzdEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9y
aWVzLT5kYXRhKTsKLSAgICAgICAgICAgIFN0cmluZyBtZXRhZGF0YSB7IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9
OworICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfZWxl
bWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9L
TEFTUykpOwogICAgICAgICAgICAgYXV0byBjb21wb25lbnRzID0gbWV0YWRhdGEuc3BsaXQoJy8n
KTsKICAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmNvbnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAg
ICAgICAgICAgICAgICAgaXNVc2luZ0hhcmR3YXJlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWJkMzYyOTYyYTQzNTYwODIy
MzNjYjE0YTk5MDdkOTA2MzRhNmRjNy4uMDFmZWZlYTMyZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2
OTBmYmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50VHlwZSYsIE1lZGlhU291cgogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJl
YW0pCiB7CiAgICAgbV9zdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKLSAgICBsb2FkKFN0cmluZygi
bWVkaWFzdHJlYW06Ly8iKSArIHN0cmVhbS5pZCgpKTsKKyAgICBsb2FkKG1ha2VTdHJpbmcoIm1l
ZGlhc3RyZWFtOi8vIiwgc3RyZWFtLmlkKCkpKTsKICAgICBzeW5jT25DbG9jayhmYWxzZSk7CiAK
ICAgICBtX3BsYXllci0+cGxheSgpOwpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkK
ICAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwg
JmRlYnVnLm91dFB0cigpKTsKICAgICAgICAgR1NUX0VSUk9SKCJFcnJvciAlZDogJXMgKHVybD0l
cykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsK
KyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdl
KTsKIAogICAgICAgICBlcnJvciA9IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5Owog
ICAgICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVyci5nZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwg
R1NUX1NUUkVBTV9FUlJPUl9DT0RFQ19OT1RfRk9VTkQpCkBAIC0xODg5LDcgKzE4ODksNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdl
KiBtZXNzYWdlKQogICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVj
dHVyZSwgImh0dHAtaGVhZGVycyIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJQcm9jZXNzaW5nIEhUVFAgaGVhZGVyczogJSIgR1NUX1BUUl9GT1JNQVQsIHN0
cnVjdHVyZSk7CiAgICAgICAgICAgICBpZiAoY29uc3QgY2hhciogdXJpID0gZ3N0X3N0cnVjdHVy
ZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVyaSIpKSB7Ci0gICAgICAgICAgICAgICAgVVJMIHVy
bCB7IFN0cmluZyB7IHVyaSB9IH07CisgICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZzo6
ZnJvbUxhdGluMSh1cmkpIH07CiAgICAgICAgICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogCiAgICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3Vy
bCkgewpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmNvbmZpZ3VyZURvd25sb2FkQnVmZmVyKEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19v
YmplY3Rfc2V0KGVsZW1lbnQsICJ0ZW1wLXRlbXBsYXRlIiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5n
ZXQoKSwgbnVsbHB0cik7CiAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUmVjb25m
aWd1cmVkIGZpbGUgZG93bmxvYWQgdGVtcGxhdGUgZnJvbSAnJXMnIHRvICclcyciLCBvbGREb3du
bG9hZFRlbXBsYXRlLmdldCgpLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKIAotICAgIFN0
cmluZyBuZXdEb3dubG9hZFByZWZpeFBhdGggeyBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpIH07
CisgICAgYXV0byBuZXdEb3dubG9hZFByZWZpeFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEobmV3
RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSk7CiAgICAgcHVyZ2VPbGREb3dubG9hZEZpbGVzKG5ld0Rv
d25sb2FkUHJlZml4UGF0aC5yZXBsYWNlKCJYWFhYWFgiLCAiIikpOwogfQogCkBAIC0yNDcwLDEx
ICsyNDcwLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExv
Y2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2Yg
dGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1s
b2NhdGlvbiB0byBpdC4KICAgICAgICAgVVJMIGJhc2VVcmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5l
d0xvY2F0aW9uKSA/IFVSTCgpIDogbV91cmw7Ci0gICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFz
ZVVybCwgU3RyaW5nIHsgbmV3TG9jYXRpb24gfSk7CisgICAgICAgIFVSTCBuZXdVcmwgPSBVUkwo
YmFzZVVybCwgU3RyaW5nOjpmcm9tTGF0aW4xKG5ld0xvY2F0aW9uKSk7CiAKICAgICAgICAgR1Vu
aXF1ZU91dFB0cjxnY2hhcj4gcGxheWJpblVybFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1f
cGlwZWxpbmUuZ2V0KCksICJjdXJyZW50LXVyaSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBu
dWxscHRyKTsKLSAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmcgeyBwbGF5YmluVXJsU3Ry
LmdldCgpIH0gfTsKKyAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
cGxheWJpblVybFN0ci5nZXQoKSkgfTsKIAogICAgICAgICBpZiAocGxheWJpblVybCA9PSBuZXdV
cmwpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlBsYXliaW4g
YWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9uLiIpOwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9v
bCBpc01lZGlhRGlza0NhY2hlRGlzYWJsZWQoKQogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJ
U0tfQ0FDSEUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6Omdl
dGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKICAgICAgICAgaWYg
KCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdHJpcFdoaXRl
U3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCk7CiAgICAgICAgICAgICBy
ZXN1bHQgPSAodmFsdWUgPT0gIjEiIHx8IHZhbHVlID09ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIp
OwpAQCAtMzkxOCw3ICszOTE4LDcgQEAgSW5pdERhdGEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpwYXJzZUluaXREYXRhRnJvbVByb3RlY3Rpb25NZXNzYWdlKEdzdE1lc3MKICAgICAgICAg
ICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7CiAgICAgICAgICAgICBnc3RfZXZlbnRfcGFy
c2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxs
cHRyKTsKIAotICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlT
eXN0ZW1JZCB9LCBkYXRhIH0pOworICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5n
Ojpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtSWQpLCBkYXRhIH0pOwogICAgICAgICAgICAgbV9o
YW5kbGVkUHJvdGVjdGlvbkV2ZW50cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkp
OwogICAgICAgICB9CiAgICAgfQpAQCAtNDAzOSw3ICs0MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVByb3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQp
CiAgICAgY29uc3QgY2hhciogZXZlbnRLZXlTeXN0ZW1VVUlEID0gbnVsbHB0cjsKICAgICBHc3RC
dWZmZXIqIGluaXREYXRhID0gbnVsbHB0cjsKICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlv
bihldmVudCwgJmV2ZW50S2V5U3lzdGVtVVVJRCwgJmluaXREYXRhLCBudWxscHRyKTsKLSAgICBp
bml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJ
RCB9LCBpbml0RGF0YSB9KTsKKyAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0
cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbVVVSUQpLCBpbml0RGF0YSB9KTsKIH0KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OndhaXRpbmdGb3JLZXkoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Ry
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDAzZWRh
YzhjOGU5N2JiMWVhYTRiMzNiM2Y0NDU5YWNkYWRmYjk0NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVm
NWRmN2JmOGJjZTVkZWMyZjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXI6OmdldExhbmd1YWdlQ29kZShHc3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2
YQogewogICAgIFN0cmluZyBsYW5ndWFnZTsKICAgICBpZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdf
TEFOR1VBR0VfQ09ERSwgbGFuZ3VhZ2UpKSB7Ci0gICAgICAgIGxhbmd1YWdlID0gU3RyaW5nIHsg
Z3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEo
KSkgfTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRf
bGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkpOwogICAgICAg
ICBHU1RfREVCVUcoIkNvbnZlcnRlZCB0cmFjayAlZCdzIGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwg
bV9pbmRleCwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIGlmIChsYW5ndWFnZSAh
PSB2YWx1ZSkgewogICAgICAgICAgICAgdmFsdWUgPSBsYW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEs
NyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0
YWdzLCBjb25zdCBnY2hhciogdGFnTmFtZSwgUwogICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRh
Z1ZhbHVlOwogICAgIGlmIChnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAm
dGFnVmFsdWUub3V0UHRyKCkpKSB7CiAgICAgICAgIEdTVF9ERUJVRygiVHJhY2sgJWQgZ290ICVz
ICVzLiIsIG1faW5kZXgsIHRhZ05hbWUsIHRhZ1ZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUg
PSBTdHJpbmdUeXBlIHsgdGFnVmFsdWUuZ2V0KCkgfTsKKyAgICAgICAgdmFsdWUgPSBTdHJpbmdU
eXBlIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHRhZ1ZhbHVlLmdldCgpKSB9OwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlk
ZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcAppbmRleCBkN2JlODA1MThlZDY5ZWNlY2Q3MTZm
YWIyMzIzMGY4Yzc2MGI5NmM1Li4zMDVlNTFhZmY3NWM1ZmIwYmEzYWVhZDJhMTU0MzBmMmNhNGY0
YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNw
cApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZv
ckVsZW1lbnQoR3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnc3RfcGFkX2FkZF9wcm9iZShzaW5r
UGFkLmdldCgpLCBwcm9iZVR5cGUsIFtdKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywg
Z3BvaW50ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2JlUmV0dXJuIHsKICAgICAgICAgYXV0byBb
bW9kaWZpZWRCdWZmZXIsIG1ldGFdID0gZW5zdXJlVmlkZW9GcmFtZU1ldGFkYXRhKEdTVF9QQURf
UFJPQkVfSU5GT19CVUZGRVIoaW5mbykpOwogICAgICAgICBHU1RfUEFEX1BST0JFX0lORk9fREFU
QShpbmZvKSA9IG1vZGlmaWVkQnVmZmVyOwotICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5n
VGltZXMuc2V0KFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9LCBz
dGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05P
TkUpKTsKKyAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmc6OmZy
b21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKSwgc3RkOjptYWtlX3Bh
aXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpLCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CiAgICAg
ICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogICAgIH0sIGdzdF9lbGVtZW50X2dldF9uYW1l
KGVsZW1lbnQpLCBnX2ZyZWUpOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCB3ZWJraXRHc3RU
cmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgICAg
ICBpZiAoIW1ldGEpCiAgICAgICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKIAotICAg
ICAgICBTdHJpbmcgZWxlbWVudE5hbWUgeyByZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkgfTsKKyAgICAgICAgYXV0byBlbGVtZW50TmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWlu
dGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkpOwogICAgICAgICBhdXRvIHZhbHVlID0gbWV0
YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLmdldChlbGVtZW50TmFtZSk7CiAgICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoZWxlbWVudE5hbWUsIHN0ZDo6bWFrZV9wYWlyKHZh
bHVlLmZpcnN0LCBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkpKTsKICAgICAgICAgcmV0dXJuIEdT
VF9QQURfUFJPQkVfT0s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCBkNjQwNGMxMjBjYThhZGUxMGY3NWViN2I5YjNhZGMyZDVjM2QzOTBhLi45
NmRmY2ZjMTJjZWM3Y2JjMDRlM2QzY2ZiNTk5ZTU3MzVlMzIzZTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2
b2lkIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNh
cHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxj
aGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgp
KSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07Cisg
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7
CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1l
ckVNRVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRleCBkMmFkZTg3MzBjMDRlNzU1MDJj
NmEwNDRhMDE3OWM5MzI2YzllM2E4Li5hYTYxYzQxYWZjZTQ1YWNhMjE3YjdmNWVmN2RkY2U5MWVm
YjI4ZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKQEAg
LTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIqKiBzdHJlYW1FbmNy
eXB0aW9uQWxsb3dlZFN5c3RlbXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqKj4oZ192
YWx1ZV9nZXRfYm94ZWQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUpKTsKICAg
ICAgICAgaWYgKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcykgewogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyAr
K2kpCi0gICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChzdHJlYW1FbmNy
eXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pOworICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lz
dGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lz
dGVtc1tpXSkpOwogICAgICAgICB9CiAgICAgfQogICAgIGNvbnN0IEV2ZW50VmVjdG9yJiBldmVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYjYxNTBkYTQzZDE3ODRm
ZDU1MjVmYmJmYTliODUyNzBlZTAzMDk5ZC4uNWQ1NDE5ZTg0OGVhNjZlNDVmNWQ4MzM1YjVjOTYy
Y2U2NDQ1OWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdAogICAg
ICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJwogICAgICAgICAv
LyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0ndmlkZW86OTBNLFQ6MTAwMDAwJwogCi0g
ICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJNU0VfTUFYX0JVRkZFUl9TSVpFIikpOworICAg
ICAgICBhdXRvIHMgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVG
RkVSX1NJWkUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IGVudHJpZXMgPSBzLnNwbGl0KCcsJyk7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IFN0cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUy
OWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lv
bnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJl
U2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3Ry
aW5nKQogewotICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikp
KTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25l
bnRzID0gbV92ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAg
IGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xF
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
c0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdl
ZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewot
ICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2Jm
Li44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYg
KCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAg
cmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1
Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Np
b24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lv
bjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxp
dGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJh
dGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1
cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmco
Ik5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3Mp
OwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTli
ZWMyLi5iMmM5ZWU1NTgzYWZlY2ZiYjk5NmI4ZmVhYzI3NjI0ZmQwZGQzNDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJp
dmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBw
cmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElU
X0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5n
IHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGlu
MShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsK
ICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBw
b3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFy
ZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBz
dHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBo
b3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcg
KyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEo
YXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFt
X3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVk
IGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jh
c2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcx
NCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4g
SWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBh
biBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09O
OjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGll
cyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBj
YXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGll
cyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBh
cmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMg
PSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAo
IXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJp
bGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzcz
Niw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBh
YmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmls
aXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAg
ICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMu
Mi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJl
dHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGlu
IGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBT
dHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMg
QEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxp
dGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Zmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZp
cnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkp
LT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmls
aXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0
Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8v
IDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcg
dG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJp
bGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJp
bGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNo
Q2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJp
bmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0
aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEs
NyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0
Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9u
Tm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBj
YXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMs
NyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09O
OjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vz
c2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lv
bgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVk
LCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3Rp
dmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4
MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpj
b25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNl
c3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1h
dGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkw
MSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRp
b24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24n
IGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9u
Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBT
dHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25J
dGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51
bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQg
b3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NL
ZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYg
KHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpT
dWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBh
Y3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4g
cHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAg
Y2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkg
ewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1
ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBr
ZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAg
ICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hl
Y2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRp
YyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0s
IEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0
ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5z
aWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24n
IGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0
aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVl
LT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVj
dC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAg
ICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2Jq
ZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3Qg
aW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJP
cmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAg
c3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9u
SXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAi
cG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4g
eyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlk
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7
CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24m
IGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInki
X3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElO
VF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwi
KQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2Vs
OwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBp
cyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
UG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFj
dGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFs
dWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
YnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlz
c2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRW
YWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQg
Zm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVw
L2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52
YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFs
aWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBl
JyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmpl
Y3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
ZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5S
YW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsK
LSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYs
NyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVs
dGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAg
ICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01J
Tik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRl
bHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09O
OjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZh
bHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlz
IG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2gi
KQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwog
ICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdw
b2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAs
NyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNz
SW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25T
ZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlv
blNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBz
ZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNl
KFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAg
aW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52
YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBp
biBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAg
ICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQg
b3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYg
c2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5w
dXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1
dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNl
IHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2Ug
dHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5w
dXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9p
bnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVy
IHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0g
YWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0
ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0
aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBp
bnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVt
c0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5n
ZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlz
IG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4g
YWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcg
QEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFy
YW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAn
YWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxp
ZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJh
N2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAx
NmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2
ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmls
aXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0
aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxh
dGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRv
d1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEw
LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25z
dCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFi
aWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBX
RUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdF
QktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24i
X3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2
NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNl
MmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dl
YkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZl
clNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNh
cGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0
V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUs
NyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0
eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hl
ZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0
b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmls
aXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlNGQ1NmMwYmU0OTJhOWJlMjFj
OGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcwNzFiY2ViMTQ5NDY2YjY0ZTFmZGU1OGRhNmFhOTEw
ZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21M
YXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToK
KyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAg
ICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
cjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBkZXByZWNhdGVkIFN0cmluZyhjb25zdCBjaGFy
Kikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEoKSBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRk
NjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1
ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
U3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBv
cmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsK
ICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1Rf
VFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFs
LmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBN
b3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdI
YXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2lu
YWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkp
OwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYz
LDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmlu
Z1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3Ry
aW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmln
aW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgp
LT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2lu
YWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBF
WFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9z
c1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAg
U3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9
OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdp
bmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFh
NWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3
ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2lu
Z0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVE
YXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3Rl
bTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyks
IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVD
VF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5
ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5
ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJh
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChp
bnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBh
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1
NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGEx
OTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQp
CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIs
IGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwg
Myk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWls
ZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmlu
ZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFy
YWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVy
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgi
WFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJf
cywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIy
LnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5n
OwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNB
cHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiks
ICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29u
dmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZp
dCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwg
J2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
LCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4
Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxl
bmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1
bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwg
YnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmlu
Z0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUg
Y2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0
KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0
aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxz
ZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVs
bHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0K
IH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
KQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1
Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgp
LCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
QUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUg
Y29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAg
ICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAg
ICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7
CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3Mp
LCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRl
ci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0
cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAg
IGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9z
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2Yg
dGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAg
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwog
ICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVG
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
REVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHko
KTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVy
LmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwog
fQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEy
MzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBi
dWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAg
ICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNU
X0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVy
KTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFs
KQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDAp
LCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVD
VF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAh
PSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFi
YyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNl
cnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRl
cjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWls
ZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRl
cjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0g
YnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFw
cGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21T
dHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5r
VG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
CmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjVi
NjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdU
RiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVT
VChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsK
ICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmlu
ZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNT
RVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCks
ICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2
OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdU
RiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAg
IFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJB
dG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9z
IH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAg
ICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmlu
Z1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEo
MCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhl
YWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3Ry
aW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6
OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAg
IFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcg
dmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9U
UlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4
NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAg
ICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmco
ImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVs
bG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0
MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMo
KSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxv
KCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVs
b1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRz
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAg
ICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0
ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRv
ciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0
KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Vi
a2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBv
aW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMs
MTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRD
aGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0g
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJ
SSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9t
TGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1Zp
ZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1Ikhl
bGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJM
LmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3
YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJM
Q29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwog
CiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3Qo
KS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBF
Q1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3Jk
IiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwi
KSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3Vy
bC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiks
IGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJs
LnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3
b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRo
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRo
Q29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1
ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElk
ZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxB
c1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxp
dGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9y
dCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3Jk
QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
OnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8i
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VS
TCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdU
Rl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNy
ZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsg
eyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMz
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0z
ODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCks
IHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAg
VVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZr
ZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEz
MTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwg
InZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2
KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJs
MTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAg
ICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5
MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAg
VVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZr
ZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7Imtl
eTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0s
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMi
X3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90
ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsg
Ij8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwg
eyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVz
dFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/Iiwg
IiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZl
Y3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9z
LCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAg
ICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAg
ICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7
IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAg
IFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAg
ICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7
eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1
MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2My
MDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBA
IC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChX
VEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0g
ICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNl
dChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3Ms
ICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMi
X3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1
cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3
MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RG
LCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxp
Y2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5n
dGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3Ry
aW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVy
YWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJv
bUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3Ry
aW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIp
LCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0
ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0
ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwg
c3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFs
Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBA
IC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7
CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjpl
bXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsK
KyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVD
VF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAg
IEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcp
KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3Rl
ZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJp
bmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRp
bjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFj
ZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91
YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRv
RG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJV
RShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAg
Ly8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBz
cGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAg
IC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdh
eXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5n
IHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2
YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZp
bml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
KS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25s
eSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Iiku
aXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiks
IDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhC
aXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkp
OworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgi
VGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdU
RiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZy
b21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
IiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAw
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlz
dGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAg
ICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFz
SGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBA
IFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2Rl
RXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJp
bmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsg
J2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4
NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0
ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRl
bnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxi
fSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
KTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0
dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJf
cywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
CmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTVi
YjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAg
IAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1j
b25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQg
dGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlz
ZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3Qg
U3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0
YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBG
aWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
CmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhh
YTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3
NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9z
LAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMp
KSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25B
U0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25B
U0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQ
YWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVk
UGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05
NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAo
XGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgo
YykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6
ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUo
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5j
cHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlm
MmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcg
QEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5n
LCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZX
ZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rl
cjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVz
dFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNv
cmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0K
IAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0
NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRh
MDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0Yo
UHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9F
UShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4
LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29t
LnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3
d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5i
bC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNv
bS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82
NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0t
YXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0
LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmlu
ZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFt
UGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJT
VUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxo
b3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGlu
MSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4u
LiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEz
YWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBA
IC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQu
b3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9w
aWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7
IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9Owor
ICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAg
ICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAg
ICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQp
IHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUw
ZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBm
NmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRl
V2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
KSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVm
ZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkp
OwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+
c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkp
OwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVz
dERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZm
ZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZp
bGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFy
c2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2Njhi
NGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJU
ZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBh
cnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRm
MTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMz
JTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1
Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0
ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rpbmcg
bGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgi
bGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2Vz
Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmco
KSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VS
TCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAi
aHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBh
cnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3Ry
aW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08t
ODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMs
IDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9z
dC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQx
JTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkx
Il9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhV
bWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlT
dHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRy
YWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0Rh
dGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAz
M2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNl
VHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFz
ZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBy
ZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAg
IC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyAr
MTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURv
ZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgog
ICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0
YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgs
NyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGlu
Z0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92
ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9y
aWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpA
QCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRo
TWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hv
dWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAg
IC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAq
d2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAi
V2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJh
c2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBz
Il9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFi
YXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlz
ay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAg
ICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0
aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxl
U3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0
NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRh
YmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJl
IHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4K
ICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBm
cm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEw
MmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0x
NDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkK
ICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlh
clFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZF
TFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhp
S3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9U
ZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQ
Nmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgog
ICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVM
TUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJl
Zj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2
cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5j
K2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpB
SDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4
U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhi
eEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9
IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0
ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFm
NGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5t
bQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRT
ZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAg
ICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1Qg
LyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVl
c3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5r
YWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNp
Z25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykg
OiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7
CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNl
bmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJp
bmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygi
ZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgo
KSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0
YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWdu
aW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5T
KFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3Ro
OnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0
aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0
cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5k
KGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0g
a2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4
YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51
bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1Nl
cnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJj
ZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBk
b1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRl
cmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJh
bCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lk
ZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7
CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50
LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBz
b3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhz
b3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJp
bmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09Q
KQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09Q
KTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25D
T0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJl
ZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3Rp
bmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwog
CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxT
dHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsK
QEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
Y29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRv
IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24o
KTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2Nd
IF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7
Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09Q
ICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAh
c3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9u
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAo
ZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0
cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9z
ICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9u
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9y
aWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBF
Q1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25T
aG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZ
ZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAg
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9
LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
NCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5n
IENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8g
U2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBh
IHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4u
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4
cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1v
cmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09P
UFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmll
dyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0
ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFl
OWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRF
U1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25u
ZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0
b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7
eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCks
IFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29u
dGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwg
Wz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0o
VmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19
LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1U
eXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdv
cmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVl
c3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChj
b25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0
UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIy
ZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1
MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDgg
KzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25z
dCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0n
aUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0K
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0
aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBj
b25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBp
ZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1
YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBf
V0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIw
NGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0Njcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29u
dGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQo
KSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpb
TlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5n
KFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZp
ZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTEx
ODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0
ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5Q
YXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNo
b3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5T
U3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5Nzlh
YS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6
KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkph
dmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0
ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFT
UyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBT
dHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRi
NjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3
NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSAr
NDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFk
ZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUi
IH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2Vw
dFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQi
X3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAg
ICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUo
cmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29u
dGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9
CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0
aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1
NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lP
MnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVy
SDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0g
ICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJl
OVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBi
YXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgq
ZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4g
SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJI
enFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1Rq
cjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1
IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2
SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIp
OworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRv
IGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsK
ICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457062</attachid>
            <date>2022-04-08 07:20:35 -0700</date>
            <delta_ts>2022-04-08 07:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408072034.patch</filename>
            <type>text/plain</type>
            <size>150686</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMy
NmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVk
KHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJl
YW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAg
ICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0
cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAg
ICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXgg
MWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUy
NTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFw
cGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAg
Y29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQ
YWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpE
ZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJl
Z2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6
Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlh
VHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAg
IH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19D
QVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9S
ZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3Bw
CmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4
ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9t
U3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUoKQogICAg
IH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRf
Y29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVj
TmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZy
b21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFp
biBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRv
IGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2Vk
IHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUy
NWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0
NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAg
ICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAg
ICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAg
IGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJf
U0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3Qg
U3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5k
ZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUx
MTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0
cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4
dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUlu
ZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmlu
ZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFj
YmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3
YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3Jl
cXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5k
ZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9S
KSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRh
aW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTEx
MDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIy
NDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApA
QCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3Vw
cG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dM
T3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFh
ZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5
YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
QEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0
U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVu
dW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1
NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1
MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJv
YXJkVXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xp
cGJvYXJkVXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwo
SURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3kgZmlsZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1
cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAg
ICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xv
YmFsKSk7Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7Cisg
ICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7
CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0
Z01lZGl1bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJM
KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5IGZpbGVuYQogICAgICAgICAgICAgLy8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAg
ICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xv
YmFsKSk7CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0
c0EoZGF0YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBV
Ukw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0
aCgpOworICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0
aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKHRpdGxlKQogICAgICAgICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAg
ICAgICAgICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9i
amVjdCogZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5H
ZXREYXRhKHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0
ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhz
dG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRl
eHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9y
ZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxz
ZSB7CkBAIC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFn
RGF0YU1hcCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3Vt
ZW50KiBkb2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJM
IGlmIHByZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3Ry
aW5nIHNyY1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1
bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0
cik7CiAgICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNmYmUyNDEy
YmJjMzhiY2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIzM2E0NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAg
LTg0MCw3ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4
dCYgdGV4dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6OklzQ2xp
cGJvYXJkRm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293bmVy
KSkgewogICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9U
RVhUKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJz
IGFzIExhdGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0
aGUgcmlnaHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcgeyBzdGF0
aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAgdGV4dC50
ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNi
RGF0YSkpKTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAg
OjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcgKzg4OCw3
IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50
KEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JEYXRhID0g
OjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0YSkgewog
ICAgICAgICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxM
b2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgICAg
ICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6Q2xvc2VD
bGlwYm9hcmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChjb250ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1NTTEtleUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NM
S2V5R2VuZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMxODBlZjdi
Yjc1ZGE3MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNw
cApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1cHBvcnRl
ZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJpbmdzIHNo
b3VsZCBiZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOworICAgIHYu
YXBwZW5kKCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNv
bnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUx
NjViMmZlMmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2
ODdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAg
ICBzd2l0Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAg
IGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9u
ZSIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpFYWdlcjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5
YzdhMzU5N2MyODFkMTBhNTliZWMyLi5iMmM5ZWU1NTgzYWZlY2ZiYjk5NmI4ZmVhYzI3NjI0ZmQw
ZGQzNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTc1LDE5ICs3
NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikK
ICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBw
b3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBz
dHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBw
b3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0
U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0
cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21w
KGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAg
aG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBT
dHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2
aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0
ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9z
ZXNzaW9uID0gbnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmlu
Zygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBi
ZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdl
YkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBw
CiAgICAgICAgIC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwg
c2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRD
YXBhYmlsaXRpZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShy
ZXF1aXJlZENhcGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0
KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0
Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJl
cXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBj
YXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVx
dWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJp
bGl0aWVzKTsKICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQg
YWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIApAQCAtNzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVl
LT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsK
ICAgICAgICAgICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBu
b3QgYSBKU09OIExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1
bWVudC4KLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RN
YXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpA
QCAtNzQ5LDEzICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkg
ewogICAgICAgICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVz
IGZvdW5kIGluIGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAg
ICAgICB9CiAgICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhl
IHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQg
Zmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAg
ICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZp
cnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogCkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJp
dmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAg
ICB9CiAKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmco
IkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdT
ZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAg
ICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2Vi
ZHJpdmVyLyNuZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNz
aW9ucyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhp
bXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Np
b24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYg
Y2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRj
aCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0
cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNl
QWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AK
IAogICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAg
ICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFs
aWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
TnVsbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRv
IHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5
cGUgIT0gInBhdXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwg
YWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0
JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09O
OjpPYmplY3QmIGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAg
ICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAg
ICAgaWYgKCFrZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVl
LT5hc1N0cmluZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBm
b3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAg
ICAgICAvLyBGSVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQs
NyArMTk5NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpP
YmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRp
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBh
dXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlm
ICghZHVyYXRpb24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlk
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgYWN0aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAw
NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3Qm
IGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9i
amVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1l
bnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlm
aWVyKCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFs
aWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3
ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRl
ck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAt
MjAxNSw3ICsyMDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVs
c2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdp
biA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51
bGxvcHQgfTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIp
OworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
b3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25J
dGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0u
Z2V0VmFsdWUoIngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdl
KCp4VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9u
Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQs
NyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBh
Y3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJ
blJhbmdlKCp5VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcg
KzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUg
PT0gInBvaW50ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0
eXBlOjpQb2ludGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBv
ZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVy
UGFyYW0KICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAg
YXV0byBidXR0b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAg
ICAgIGlmICghYnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8g
YnV0dG9uID0gdW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRv
bikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdi
dXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZh
bGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1v
dXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQs
IEpTT046Ok9iamVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAg
ICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hl
ZWwgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJp
bmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0
aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVgg
PSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAg
ICAgaWYgKCFkZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgu
dmFsdWUoKTsKQEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICAgICAgaWYgKGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVki
X3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpk
ZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEg
PSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0Rh
dGEpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBv
YmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3
OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHBy
b2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2lu
dGVyVHlwZSA9PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9p
bnRlclR5cGU6OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
cGFyYW1ldGVycyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7
CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3Qo
KTsKICAgICBpZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0
Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMg
KzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJ
bnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09
ICJub25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5v
bmU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0
U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9u
IHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNz
aW9uLmdldE9yQ3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5
cGUpOwogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3Qg
bWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRT
b3VyY2UudHlwZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2Uu
cG9pbnRlclR5cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291
cmNlIHBvaW50ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRl
ciB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBh
dXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsK
ICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rp
b24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5j
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcg
KzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lu
cHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRl
bSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9u
SXRlbSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4g
YWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2Jq
ZWN0Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApA
QCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9u
cyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8g
YWN0aW9uc0FycmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlm
ICghYWN0aW9uc0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAn
YWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vy
dmljZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNw
cAppbmRleCBhMDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYw
ZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2Fw
YWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7
CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1h
dGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9i
amVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNv
bnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJ
UiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dz
ZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElS
ICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3Nl
ciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5n
PiB7ICItLWF1dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9s
bGJhcnMgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2
ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VX
UEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRj
OTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJE
cml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIp
OworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAg
ICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmls
aXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAog
dm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpT
T046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1p
bmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1p
bmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3Rv
cjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9u
cyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3Mp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBl
NGQ1NmMwYmU0OTJhOWJlMjFjOGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcwNzFiY2ViMTQ5NDY2
YjY0ZTFmZGU1OGRhNmFhOTEwZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFz
ZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHBy
aXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0
b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4p
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dl
YlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RU
b1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVu
SmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBkZXByZWNhdGVk
IFN0cmluZyhjb25zdCBjaGFyKikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEoKSBpbiBtb3JlIHBs
YWNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2Qu
LjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0g
Y3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVm
KCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
U3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewot
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2lu
YWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcg
b3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHko
V1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNv
dW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAg
ICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRD
b3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcg
KzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5n
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZp
bmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBz
dHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAg
ICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0
OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2Nm
M2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5
c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1U
ZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVT
eXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5n
X2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7Cisg
ICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3Rf
ZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1
Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFw
cGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5
N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChX
VEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dl
cmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
bGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihp
bnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1
aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5j
cHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1
N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRD
aGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVz
dCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAg
YnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5k
Q2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAg
IGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1
aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0
NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAs
NTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3Ry
aW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsK
IAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigp
KSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4x
KGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRl
cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIs
IGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmco
IjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxs
c2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBU
ZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2
LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBh
Y2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAx
KSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1
cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3Vs
ZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNz
YXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIp
OwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0
eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSks
IGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWls
ZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVD
VF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90
IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91
bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJp
bmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
Il9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1
aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemlu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBi
dWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBz
dHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVk
IGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwg
YnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7
CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENo
YW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkg
aXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0
MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
OwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWls
ZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0
eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJh
Y3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBz
dHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAg
Ly8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9
IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5j
aGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAg
LTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBi
dWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAg
ICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBF
Q1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJf
cywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJp
bmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBl
eHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0
aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3Ry
aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsK
ICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgi
MTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3Ry
aW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7
CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBw
ZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmlu
ZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7
CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWls
ZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNU
X1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5n
ID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwg
YXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7
CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5
ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQg
KzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2Fz
ZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmlu
ZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0
IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmlu
ZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJj
NGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJh
OTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJp
bmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0
cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwg
eyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAi
U3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmll
dyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07
CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZj
MDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNl
MTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlW
c051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5
VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0
ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3Mp
OwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJz
KTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxW
aWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwp
CiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRo
Q2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFy
YWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFy
YWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlz
RW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJh
dG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6
ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsK
IAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwog
ICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBo
ZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmlu
Z1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7
CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEo
KmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsK
KyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50
cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJh
dG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9y
OwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdB
bmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxs
QVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlz
QWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikp
LmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5Ox
IikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJc
dTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmlu
ZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXco
U3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Z1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxB
U0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8
Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2
OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBU
RVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUo
a3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0
cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJs
Lmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5j
b20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwu
cG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dv
cmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5o
dG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwi
X3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZh
cj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21l
bnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwu
ZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9z
KSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJM
KEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJM
IGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJM
UHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5l
eGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5h
bWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8i
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
ZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ei
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6
cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
fQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyAr
MzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsK
ICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJM
IHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7
ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAg
ICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwg
dXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2
YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBV
UkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtl
eTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVy
bDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwg
InZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAi
a2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwx
MSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwx
Il9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFs
MyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0
ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7
ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIs
ICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7
ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9y
MTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7
eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtl
eTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2
YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAK
ICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7
CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVz
dD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3Qi
X3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAog
ICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJf
cyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJf
cywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0
IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8i
X3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwg
InRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0
b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3Rv
cjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0
b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5k
ZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3
MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBM
YW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0
cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2
MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7Cisg
ICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7
CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6
bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJp
bmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNi
ZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMg
KzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVD
VF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxp
dGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1
Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RS
VUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZp
YUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3lu
dGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5n
RnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVu
KCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQ
RUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1Rf
VFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
U3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdU
RiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNX
aXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVt
cHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hh
cmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxv
Il9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgo
bnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0
c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5n
TnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmlu
Z1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBT
dHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9
PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNU
KFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVT
VChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCku
dG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9E
b3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2sp
KTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEi
KS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNU
X1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBp
ZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZh
bHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRo
IHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAg
aWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1i
ZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwog
CiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAi
bmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9
CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUi
KS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJU
ZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0
cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcyku
aXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFy
dGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhh
c0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMg
KzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVD
VF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9Iiks
IDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmlu
ZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikp
OworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcyku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRF
U1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBs
YXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7
CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShz
dHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpA
QCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1Qo
V1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcx
KCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uo
c3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAg
ICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0
OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3
MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBh
dHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEs
ICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7Cisg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVu
dEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAg
ICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0
ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5T
dGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1
MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApA
QCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRo
aXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhp
cyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0
aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0
ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNv
bWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0
b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRl
c3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9I
VFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIy
OTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmll
bGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAg
ICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAg
ImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50
IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAg
ICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmlu
Zzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRp
bjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3Vs
ZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJz
ZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAg
ICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0s
CisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAK
ICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNm
NGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
CkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQog
CiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUo
dGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldl
YkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7Cisg
ICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVu
Y29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmco
IldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNv
cmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZm
aXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBh
YzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAg
KzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1
NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4
YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3Qu
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
eG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82
NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFv
NjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20i
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRl
c3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
Y28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3
d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcu
MC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsK
ICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEi
X3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVY
UEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlk
aXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxv
Y2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5Yi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFt
cGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
bG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TD
liIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ii50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5
YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1
NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1h
bnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENv
dW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAi
aHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRm
KHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29y
ZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBT
dHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxh
dGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQs
IFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVy
LmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFk
OWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMs
NyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRv
IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygi
bm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAg
ICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxl
KQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZp
bGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVY
UEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3Vv
dXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6
ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3Ry
aW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwog
fQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50
c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgw
ODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJm
N2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5
LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7
CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiks
IG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3Qi
X3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThE
Il9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlG
JUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAg
UEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4
dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9x
dWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNl
cyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMi
X3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0
dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywg
InF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAg
Y2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9z
LCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUx
LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAg
ICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hl
Y2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5j
b2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29k
aW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRm
MTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1h
a2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7Indz
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9z
LCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/
JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8v
aG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJp
bmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVC
MCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAl
RDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNl
NGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQy
MTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5
LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlz
IGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90
aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRo
ZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9y
aWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBk
YXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUg
cmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwg
d2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFi
YXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJl
Y3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsK
LSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3Ry
aW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIg
PSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJr
aXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2Vy
LCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBU
aGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0
YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlz
ay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVt
cG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFi
YXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0
aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsy
NzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5k
IGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hv
dWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hv
dWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJT
UUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJT
UUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5V
VEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRy
YWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3Ms
ICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VU
cmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBU
ZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNu
J3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRh
YmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcg
KndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFi
YXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRw
cyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZl
ZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJk
OTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVm
PiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5
YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxr
VDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4
Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZt
MVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdP
eS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29k
ZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhr
aUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFp
blB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNY
MWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAg
Ijk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRv
SU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9p
UTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0
OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRv
IHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAg
ICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZp
Y2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBl
Zjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVl
c3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAog
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1
ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3Ry
aW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxp
bmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5s
aW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4i
X3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5n
LmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgo
KSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5n
LmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVu
bGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5n
UGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVx
dWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwog
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Nl
Y3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rv
a2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJp
bmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAt
MzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2Vj
cmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29k
ZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0
b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVj
dG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNp
Z25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVy
ZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5f
c2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVy
ZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4
MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5Mzky
N2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3
Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3
YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9
OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1z
dGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1As
IGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29u
c3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RT
d2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291
cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlv
bkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVP
cmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RT
d2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3Vy
Y2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Q
b2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNv
dXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJz
LmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGlu
YXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBp
ZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAg
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJf
cywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBk
ZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBT
dHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQo
IkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAg
SFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRl
cnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXpl
cl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6
UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291
cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dL
UHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikg
JiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAg
ICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRp
b25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0
aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsK
KyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1Ag
PT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAg
ICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRp
b25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUt
Y29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0
ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dh
cCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgy
LDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25z
dCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxw
dHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0
aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3Np
bmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewog
ICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZl
IENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0
KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24n
dCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNK
SVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXgg
YzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3
MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIx
MzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAg
ICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihb
XSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhU
VFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5z
ZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5C
eXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRU
UFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5
dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2Vp
dmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6
ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0s
IGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9y
PGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBF
Q1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vk
c3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9z
KS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXgg
ZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQx
Yjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBp
ZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3Qg
Y2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8
aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9o
dG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxp
bnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTks
NyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNy
ZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRt
bD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVh
MmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3
YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29w
eUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBV
UkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBh
YnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0
TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1
NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0
MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRM
ZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5j
aG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVj
dG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0
cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3
YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2Vh
MWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcg
KzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZp
ZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5n
ICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZl
ci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5
MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUy
NzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2Vy
dmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5k
c2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAg
ICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAg
ICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25u
ZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2Vw
dCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3Jh
ZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJV
cGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2Vi
U29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJl
c3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5k
bGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhU
VFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBo
WmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6
ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2Ei
CiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29D
TW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAg
ICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNv
ZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAg
ICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBA
QCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1Vi
aUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVE
bG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMx
RHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlpl
bUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZ
NEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9
PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5
Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgz
ZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNw
cAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1
NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1t
YXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0
cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0g
YU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9Owor
ICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1w
dHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0
U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpm
cm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwg
PSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2
U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485541"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457066</attachid>
            <date>2022-04-08 07:39:57 -0700</date>
            <delta_ts>2022-04-08 08:00:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408073957.patch</filename>
            <type>text/plain</type>
            <size>152704</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMy
NmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVk
KHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJl
YW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAg
ICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0
cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAg
ICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXgg
MWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUy
NTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFw
cGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAg
Y29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQ
YWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpE
ZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJl
Z2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6
Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlh
VHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAg
IH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19D
QVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9S
ZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3Bw
CmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4
ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9t
U3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUoKQogICAg
IH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRf
Y29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVj
TmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZy
b21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFp
biBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRv
IGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2Vk
IHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUy
NWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0
NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAg
ICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAg
ICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAg
IGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJf
U0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3Qg
U3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5k
ZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUx
MTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0
cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4
dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUlu
ZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmlu
ZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFj
YmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3
YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3Jl
cXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5k
ZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9S
KSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRh
aW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTEx
MDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIy
NDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApA
QCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3Vw
cG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dM
T3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFh
ZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5
YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
QEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0
U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVu
dW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2
MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTRhY2ZmMTNlMDZkN2FlYjI5OTY4ZWQ0ZDdhZTEwY2UzNmI5
ZjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAg
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5p
cXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3Mo
ZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFz
c0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGRldmljZUNsYXNzQ2hhci5nZXQoKSkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlv
IikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4u
Y3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRj
NTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYs
NyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0Rh
dGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NF
RURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAg
ICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNo
YXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVS
TChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6
OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhH
bG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1
LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdE
YXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxl
bmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNo
YXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYm
IGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkg
ewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChT
dHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJM
OjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmls
ZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAg
ICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBT
dHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBp
ZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9y
ZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRp
Y19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9
IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsK
ICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3Rn
TWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNv
bnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwp
CiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxT
dHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsK
ICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5k
SWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXgg
NjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJm
NmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9s
aWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkg
JiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRh
ID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4g
V2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAg
IHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0
YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGlj
X2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5s
b2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBh
c3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAg
ICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAg
ICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAg
U3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7
CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0
ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMy
NTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7
CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBw
ZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBT
dHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBj
b25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApp
bmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2Iy
N2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4
OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0
cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxv
YWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
bmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsK
ICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2Vi
RHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3Bw
CmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0
NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVu
KGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIp
CiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52
VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3Ry
aW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0
cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9
IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07
CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAg
IHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0
U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcs
ICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAg
ICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAg
ICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsK
LSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAg
ICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBX
ZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAg
ICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigi
LS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJn
ZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFy
Z2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0
YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYs
NyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJv
cihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25u
ZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdl
IGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0
cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAg
VmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBh
YmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2Jq
ZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRl
KCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBh
YmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1
bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMg
aW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQg
b2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVk
IGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmls
aXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlk
IGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENh
cGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBK
U09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJz
dE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3Qg
bWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGgg
ZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRj
aCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7
IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJp
bGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046
Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxp
dGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAg
ICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBm
aXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRh
dGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBh
YmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAg
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJz
dE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVz
TGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykp
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJh
bWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vz
c2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11
bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRl
cnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIo
VmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChD
b21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmls
aXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQs
IFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFs
dWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBw
YXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046
Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0
eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52
YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBT
dHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5
RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlk
Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIg
KzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9u
KGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3Vi
dHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZv
ciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAg
ICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFs
aWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29k
ZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1Bv
aW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24s
IHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVy
YXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJh
dGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBh
Y3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52
YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJN
b3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAg
ICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsK
ICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vz
c2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJ
RCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7
CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdv
cmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxl
bWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9j
ZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFj
dGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlv
bihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1
dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4
ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgh
eCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFs
dWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92
ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAg
aWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAg
YXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAg
IGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9
IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFj
dGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFt
CiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9p
bnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwx
MiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQ
b2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3Np
bmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVy
IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1
ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9k
b3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEw
OSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlv
biBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5n
JiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0g
dmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAg
IGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZh
bHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVy
UGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAg
ICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7
CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVy
IHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVj
dCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFt
ZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGlu
IGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBh
Y3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVl
bmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9u
U2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUg
PSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5j
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBp
ZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFs
aWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFj
dGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQog
CkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rp
b24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBh
dXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5w
dXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0g
aW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0
Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6
UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1h
dGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+
Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHBy
ZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9u
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3Qo
KTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIp
OworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9u
IHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVy
cywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJh
eSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZh
bGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50
Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3Rr
L1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZm
YzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0z
OSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFi
aWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAg
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1l
ID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJp
bmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAg
ICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0
IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBh
YmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmls
aXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJp
bmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVS
U0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmlu
YXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJT
SU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFy
Z3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFi
aWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dlYkRyaXZl
ci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhMTJhMDA1ZmFj
MDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVhNWU2ZDJlYjIw
NDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQog
Q2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsK
ICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9
IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gZmFs
c2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBib29s
IFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYs
IGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFy
c2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJv
d3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJv
d3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5i
cm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAK
ICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRPYmplY3Qo
IndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMGU0ZDU2YzBiZTQ5MmE5YmUyMWM4YWU2OWI3MTQzZmYwMWMz
NGZkZC4uNzU5NzA3MWJjZWIxNDk0NjZiNjRlMWZkZTU4ZGE2YWE5MTBlYzkyZiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBA
CisyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
RmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtl
IFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVt
YmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1w
bC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmll
dy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2Vy
VGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAodGVzdElk
ZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlua2FibGVU
b2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5D
b3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dlYktpdDFU
ZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmlu
aXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2Vy
dmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFu
ZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZp
Y2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtl
eSk6CisKIDIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgU3RyaW5nKGNvbnN0IGNoYXIqKSB3aXRoIFN0cmluZzo6
ZnJvbUxhdGluMSgpIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0
YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5
NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAg
U3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQi
X3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVY
UEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVF
KGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgp
LT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUz
LDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsK
LSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VR
KG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsK
QEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlv
bmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxT
dHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07
CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdp
bmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsg
IjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVm
Q291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0
NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZh
dGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBi
b29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURh
dGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9k
ZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBw
ZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Mp
OwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdi
MDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEw
MTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAg
LTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChp
bnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2Vy
Y2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2Rk
NDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNw
cApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iikp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJh
YmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVp
bGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwg
YnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWls
ZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVu
Z3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIz
NDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5
KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBl
bmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3Ry
ZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5n
KGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIp
OwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIi
LCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAn
QycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1
Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdC
dWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGlu
ZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywg
IiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBi
dWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAg
IEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwog
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVB
QiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgt
Yml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUg
dXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwg
J2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
LCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVY
UEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIs
IFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsx
OTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3Ry
aW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJp
bmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxk
ZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBj
YXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBh
Y2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBT
dHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVu
ZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3Ry
aW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJp
bmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFw
cGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQog
CiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0y
MjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAg
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAg
ICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShz
dHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENo
YW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQo
ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVy
LmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRl
ci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5n
MSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNh
cGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVG
Il9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2
Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAg
YnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJp
bmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1
aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIx
ICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RS
VUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkg
PT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBi
dWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7
CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNp
dHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJp
bmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVy
MSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNU
X1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJp
bmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVp
ZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAg
LTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAg
ICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1
Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEy
MjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQx
ZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3Rh
cnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRF
U1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVF
KHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwog
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
LCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
IikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
U3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNT
RVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIi
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQy
ZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0Miwx
MSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRv
cnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygi
U3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAg
ICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmlu
ZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdW
aWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3
IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5
Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApp
bmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2Jl
ZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3
OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3Rl
cnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFy
YWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAot
ICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVY
UEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxT
RSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRF
U1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBT
dHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAog
ICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNv
ZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0
ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0
cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAg
ICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMo
KTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAg
ICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwg
U3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRF
U1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdW
aWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSku
aXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21M
YXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVND
SUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VS
TC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1
NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNk
ODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0
Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEo
a3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
d3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwog
ICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJs
LnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJs
LnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29y
ZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9u
ZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0K
IAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAs
NDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmlu
ZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8g
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9h
L2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3Ry
aW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1
cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBA
IFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAg
VVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBV
UkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQg
e3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsK
ICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0
VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAg
VVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUx
Nik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIs
ICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJs
MTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFs
MiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3Ms
ICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZh
bDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsi
a2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsg
ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZh
bDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwg
dGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7
Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0
ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7
IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAg
ICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJf
cyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90
ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVz
dCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAg
CiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3Qi
X3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJf
cywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAi
Il9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsg
IiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0
OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBA
QCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZy
b21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIg
fSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBt
YXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAog
ICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRk
NDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEy
NWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9u
RnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9u
IHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBF
Q1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZp
YUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4
IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4
cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
KTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3Ry
OwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRl
cmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJv
bUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJh
bCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9t
TGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAg
VEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVs
bFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0g
ICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0
aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3Ry
aW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIz
MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhw
ZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAg
RVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7Cisg
ICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBA
IC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNU
X0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVY
UEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNl
ZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9E
b3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWls
aW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAg
ICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNl
IGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAK
ICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJp
bmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBz
cGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJu
YW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRp
bmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
KCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0
KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywg
MikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdB
dCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIp
LmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZp
eFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVY
UEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6
ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRG
OCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAg
ICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcx
KCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwo
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0
cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmlu
Z0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkp
CiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMi
X3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJV
RShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4u
YTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNp
bmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0
ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29uc3Qg
Y2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3Ry
aW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21M
YXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsK
ICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFk
NWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDcz
MzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVz
dCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMg
c29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0
b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsK
K2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUg
Y2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3Mjdm
ZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdlMzY2NGI0NmYz
MTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQ
SGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBc
ImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBT
dHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90
ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpcklu
UXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisg
ICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAor
ICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAg
ICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVT
VChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAg
ICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAg
IFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbElu
UXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAw
MGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVhODA5ZDFjNzNk
NzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29k
aW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmlu
ZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5j
b2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcs
IFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldl
YkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVy
OjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29k
aW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcx
MTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNi
ZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0
cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVY
UEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJj
b20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
by51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20i
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4u
dGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51
ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJy
NC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
cjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxE
b21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhh
bVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XD
pMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxl
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBs
ZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhv
c3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0
cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2Uu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAK
aW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUz
MGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBA
QCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYo
c2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkp
OwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIs
IGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAg
ICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNv
cmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3Jk
LnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJh
c2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAg
ICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJm
YzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2Jl
MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
VEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1p
c3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRo
Q29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1
ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01
Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0
aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05P
VF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVu
KEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJp
bmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRh
KCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2Rpbmcu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4u
NGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6
Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQi
X3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVD
MyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JT
dXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJs
YXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBj
aGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsi
aHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9z
LCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3Qv
P3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3Ms
ICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3Qi
X3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
LCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6
Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2du
aXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9z
fSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEi
KSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBT
dHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAn
XDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVt
bGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3Ry
aW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVj
a1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1
OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8v
aG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVz
dC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3
ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFj
a2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
T3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2lu
J3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNl
cyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmlu
ZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5
KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0
YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChk
YXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0
dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERh
dGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAg
IC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9y
bWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0
cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0
b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4g
ZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0
aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4o
Imh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNU
KERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMp
CiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlv
biBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcg
QEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRh
dGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVt
b3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hv
dWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVs
ZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywg
YW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFi
bGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyAr
MzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNl
RG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0
ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3Vs
ZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNl
cyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5k
ZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2
MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBS
ZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxX
TjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgog
ICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5
VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90
STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2
bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7
CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJn
Q0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBA
IC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHky
KCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRj
ckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklp
V20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JB
Q3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkv
aEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dC
L3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBl
bUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjRE
ZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNj
YTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2
ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgy
LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihU
b2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIs
IHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVl
c3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2ln
bmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3Vy
Y2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAs
NyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRv
a2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRh
KCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBT
dHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNy
ZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5n
LmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVu
bGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5n
UGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2Vu
VmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNp
emUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0g
c2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJj
ZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90
b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlv
bl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAz
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0
U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpp
bmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdj
OWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9y
aWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0
IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
Y29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hh
ciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9y
aWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGly
ZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwg
QVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09F
UCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2
ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJj
ZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQv
aHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBz
b3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7
CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0
aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3Ms
ICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmco
ZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0
aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywg
ZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShX
VEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVy
IHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3Bv
bnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3
LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3Vy
Y2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJv
Y2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJj
ZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3Vy
Y2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09F
UCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1As
ICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9u
Q09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9
PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3Rp
bmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1u
b25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
IHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9w
dXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3Vs
ZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNh
dXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRo
ZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNh
dXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1y
ZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2
MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
ICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAg
ICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0g
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUi
LCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0
ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikg
ewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJD
b250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlz
dFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJp
YWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RS
ZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9u
c2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUx
ODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJh
bWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9p
ZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lG
cmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1
YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxz
Y3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAg
IH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3Njcmlw
dD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNv
cHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNv
cHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4u
OTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpA
QCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlV
UkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAg
ICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2Vu
ZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0
cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAg
ICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2Fu
UGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4u
YTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYs
NyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERP
TUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9j
dW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBb
YW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRl
eCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2
NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
Kil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAog
CiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZy
YW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNz
YWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7
CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFl
NmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENv
bm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIg
fSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkg
fQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAg
ICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1X
ZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAg
ICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyks
IFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMs
NyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAi
cTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJ
c3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1
ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3
QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3
bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9z
KTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNh
dGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0
UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdI
QzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlE
OGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BT
aFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUi
Ci0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJk
YnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVL
ZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZN
b3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJL
aXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAK
aW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcy
MjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9s
bGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rl
ci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsK
IAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVs
bFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJ
bXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcg
YW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07
CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwo
KTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBh
bjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5n
SW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJp
bmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457070</attachid>
            <date>2022-04-08 08:00:11 -0700</date>
            <delta_ts>2022-04-08 08:16:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408080010.patch</filename>
            <type>text/plain</type>
            <size>153320</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMy
NmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVk
KHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJl
YW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAg
ICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0
cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAg
ICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXgg
MWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUy
NTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFw
cGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAg
Y29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQ
YWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpE
ZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJl
Z2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6
Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlh
VHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAg
IH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19D
QVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9S
ZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3Bw
CmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4
ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9t
U3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUoKQogICAg
IH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRf
Y29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVj
TmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZy
b21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFp
biBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRv
IGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2Vk
IHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUy
NWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0
NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAg
ICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAg
ICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAg
IGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJf
U0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3Qg
U3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5k
ZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUx
MTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0
cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4
dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUlu
ZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmlu
ZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFj
YmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3
YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3Jl
cXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5k
ZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9S
KSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRh
aW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTEx
MDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIy
NDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApA
QCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3Vw
cG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dM
T3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFh
ZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5
YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
QEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0
U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVu
dW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2
MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTRhY2ZmMTNlMDZkN2FlYjI5OTY4ZWQ0ZDdhZTEwY2UzNmI5
ZjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAg
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5p
cXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3Mo
ZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFz
c0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGRldmljZUNsYXNzQ2hhci5nZXQoKSkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlv
IikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4u
Y3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRj
NTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYs
NyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0Rh
dGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NF
RURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAg
ICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNo
YXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVS
TChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6
OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhH
bG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1
LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdE
YXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxl
bmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNo
YXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYm
IGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkg
ewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChT
dHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJM
OjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmls
ZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAg
ICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBT
dHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBp
ZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9y
ZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRp
Y19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9
IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsK
ICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3Rn
TWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNv
bnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwp
CiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxT
dHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsK
ICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5k
SWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXgg
NjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJm
NmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9s
aWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkg
JiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRh
ID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4g
V2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAg
IHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0
YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGlj
X2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5s
b2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBh
c3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAg
ICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAg
ICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAg
U3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7
CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0
ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMy
NTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7
CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBw
ZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBT
dHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBj
b25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApp
bmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2Iy
N2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4
OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0
cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxv
YWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
bmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsK
ICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2Vi
RHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3Bw
CmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0
NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVu
KGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIp
CiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52
VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3Ry
aW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0
cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9
IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07
CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAg
IHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0
U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcs
ICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAg
ICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAg
ICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsK
LSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAg
ICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBX
ZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAg
ICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigi
LS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJn
ZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFy
Z2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0
YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYs
NyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJv
cihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25u
ZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdl
IGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0
cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAg
VmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBh
YmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2Jq
ZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRl
KCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBh
YmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1
bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMg
aW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQg
b2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVk
IGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmls
aXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlk
IGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENh
cGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBK
U09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJz
dE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3Qg
bWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGgg
ZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRj
aCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7
IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJp
bGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046
Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxp
dGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAg
ICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBm
aXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRh
dGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBh
YmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAg
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJz
dE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVz
TGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykp
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJh
bWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vz
c2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11
bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRl
cnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIo
VmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChD
b21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmls
aXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQs
IFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFs
dWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBw
YXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046
Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0
eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52
YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBT
dHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5
RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlk
Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIg
KzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9u
KGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3Vi
dHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZv
ciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAg
ICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFs
aWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29k
ZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1Bv
aW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24s
IHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVy
YXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJh
dGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBh
Y3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52
YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJN
b3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAg
ICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsK
ICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vz
c2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJ
RCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7
CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdv
cmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxl
bWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9j
ZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFj
dGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlv
bihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1
dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4
ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgh
eCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFs
dWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92
ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAg
aWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAg
YXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAg
IGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9
IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFj
dGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFt
CiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9p
bnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwx
MiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQ
b2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3Np
bmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVy
IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1
ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9k
b3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEw
OSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlv
biBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5n
JiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0g
dmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAg
IGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZh
bHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVy
UGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAg
ICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7
CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVy
IHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVj
dCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFt
ZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGlu
IGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBh
Y3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVl
bmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9u
U2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUg
PSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5j
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBp
ZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFs
aWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFj
dGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQog
CkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rp
b24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBh
dXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5w
dXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0g
aW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0
Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6
UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1h
dGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+
Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHBy
ZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9u
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3Qo
KTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIp
OworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9u
IHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVy
cywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJh
eSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZh
bGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50
Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3Rr
L1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZm
YzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0z
OSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFi
aWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAg
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1l
ID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJp
bmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAg
ICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0
IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBh
YmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmls
aXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJp
bmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVS
U0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmlu
YXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJT
SU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFy
Z3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFi
aWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZl
ci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2Rj
YTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNi
YmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAK
QEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQog
Q2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsK
ICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwog
ICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRy
aXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBl
NjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGll
cyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3Ry
aW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxp
bnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJl
dHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8
SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0
aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkg
PSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkg
PSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3Vt
ZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBi
cm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nl
ck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDBlNGQ1NmMwYmU0OTJhOWJlMjFjOGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcw
NzFiY2ViMTQ5NDY2YjY0ZTFmZGU1OGRhNmFhOTEwZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0w
NyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0
aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29u
c3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
X0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmlu
Zy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRl
IHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZy
YW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIy
LTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFj
ZSBkZXByZWNhdGVkIFN0cmluZyhjb25zdCBjaGFyKikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEo
KSBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhi
ODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGll
ci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShv
cmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwo
KS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJW
U3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBv
cmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdU
Rk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBA
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5n
IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsK
ICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9z
c1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5p
bXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7
CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3
Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykK
IAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewot
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0g
Y3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5
LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgp
KTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9w
dGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9u
YWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9Owor
ICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShv
cmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0u
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXgg
ODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2
ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9G
KEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNz
OwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygi
bm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwg
c3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEo
U3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2Rl
OjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBF
Q1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5
NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDks
NjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRl
Z2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUlu
dGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNF
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWls
ZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMw
MDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1
ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
Iik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJp
bmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVu
Z3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRD
aGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2Rl
ZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAt
MTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQog
ICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBl
Y3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0
cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBi
dWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIi
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVp
bGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAi
Iik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBi
dWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWls
ZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9t
IDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHku
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAg
ICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQo
YnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmco
JmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVz
dCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1i
aXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3
YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVp
bGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1
bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgp
KTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgi
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
IHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2Fw
YWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsK
ICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9z
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRl
ci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3Ry
aW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAg
ICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJp
bmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcs
MTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQog
ICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwg
c3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0
aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgp
KTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2Fw
YWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVp
bGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJp
bmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyks
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmlu
ZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAg
ICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNU
X0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1
aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0
cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJl
c2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4
KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAg
YnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsK
LSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmlu
aygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1
aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIx
KTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBw
ZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxk
ZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9
PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3Mp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAg
YnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWls
ZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAh
PSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3Mp
KTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCku
CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUy
LDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmlu
ZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwg
YXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5
MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYy
OGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0lt
cGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
CkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25v
cmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAg
U3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRf
VFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUi
KSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBB
U1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiks
ICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXgg
ODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3
YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAg
IFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7
CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRl
cmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmll
d0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcg
eyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1Zp
ZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4
MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlm
OWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFy
dHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJp
bmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmlu
Z1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVy
cygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFy
dHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3
RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdW
aWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcg
dmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uo
dmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhD
aGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVy
cygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8o
ImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNv
ZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRl
cmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAg
ICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0
KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Vi
a2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29k
ZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBv
aW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdT
dHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3Ry
aW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmco
IkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJp
bmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUko
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAw
ODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhi
aXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4
MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcy
NDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2
ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAg
RVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9j
b2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxl
LmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3
d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1Rf
VFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFs
dWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1
cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdt
ZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBV
UkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBA
QCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0Yo
V1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4
Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNl
cm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4
MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJo
dHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2Rm
Oi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9
dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcp
CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJf
cyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RW
ZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RG
X1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAi
dmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAg
VVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYg
e3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsK
ICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5
MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVS
TCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUx
NiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZh
bDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAog
ICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZh
bDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAi
dmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwx
MSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAg
IFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9
dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwy
In0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgp
LCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAg
ICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwz
JmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFs
MiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAi
Il9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3Ix
OTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIg
eyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIx
MjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9
Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVS
TCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVS
TCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3
Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0
Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1
cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBV
UkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIs
ICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwz
MCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMy
KSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwy
NiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Zl
Y3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4u
YTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZf
VmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkK
IHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcg
eyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0s
IFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7
ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIi
X3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1h
cHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBw
YWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcw
ZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGVi
N2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNw
cApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFs
KQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBs
aWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdG
cm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25z
dHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBT
dHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBF
Q1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgo
KSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsK
ICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwog
fQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBT
dHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAg
ICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBz
dHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJh
Y3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJz
LnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFy
YWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNU
KFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5n
OwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVF
KHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9U
UlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkp
OwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsy
OTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVt
cHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEi
KS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBq
dW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAg
Ly8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykp
OwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBi
dXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25z
aXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdp
bGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFy
c2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0g
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
RkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1
ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsK
KyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9G
QUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlz
OEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiks
IDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcyku
aGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmco
IlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAy
KSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0
KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7
CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0
KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShT
dHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9t
VVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLk
uK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4
KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70i
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
ZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAy
KSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0
cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUg
TGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVY
UEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwo
KS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hh
c2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0
cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBF
WFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5p
czhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmlu
ZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNj
MjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3
ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMp
CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVND
SUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFT
Q0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpO
b25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFT
Q0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAg
dGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2Vh
NGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBl
YzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
VGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZp
c2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdl
ZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEo
IlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRh
KCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJp
bmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4
dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNk
YjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2Zj
Mjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQ
SGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9I
VFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxk
LCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJf
cywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9u
QVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29t
bWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisg
ICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3Ry
aW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAg
IAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRl
ckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwi
Il9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBk
ZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAg
ICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBj
N2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNj
MjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tl
eWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5k
R2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAg
RVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29k
ZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldl
YktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXll
ZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3Ry
aW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9u
RXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUz
OWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
CkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFt
cGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYx
NlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4x
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVr
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcu
MC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRl
c3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJf
cykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRm
MTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4
YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2Nh
bGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
Zygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4
YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxo
b3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21M
YXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZl
YWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVl
MjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNo
RGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXpl
b2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAg
ICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAg
ICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNv
cmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0
cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJl
Y29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRf
VFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
U2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4
YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkK
IHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZG
aWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19m
aWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBA
QCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09m
RXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRo
Q29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZm
ZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhG
cmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+
bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERh
dGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXIt
PnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0
ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmlu
ZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1
NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBA
IC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5
RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/Cf
mI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlG
JUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYl
OTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFp
cnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOwor
ICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0
dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIw
d2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdp
dGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAm
bGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9z
LCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5
Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7
Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJf
cywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBA
IC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5
RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2du
aXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9z
fSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAg
UEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBB
TDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhV
bWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAg
IGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlz
bzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6
Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0
cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywg
IiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8l
QzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXgg
NzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUx
ZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0K
QEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0
aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBh
bmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERp
cmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIp
OwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhT
dHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tl
ciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndl
YmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNr
ZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90
IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91
bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIElu
IHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRo
ZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJs
ZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0
aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxl
dGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3Rl
bTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsK
QEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2Up
CiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUg
ZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5m
b3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5T
U3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJl
Y3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2Vy
PiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQ
YXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
bigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRF
U1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlz
dCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFz
ZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVt
b3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2
NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1
YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNl
Y0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFa
eVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tG
OGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQr
eiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVU
ejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoi
KTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3Ry
aW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJu
TTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3
Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2
aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpn
MkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajlo
QXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFB
di9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2
OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7
CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJp
dmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0
ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBk
NmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRp
YyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5n
UGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShz
dHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5z
aXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9
IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6
U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0
aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5n
KCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlu
a2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJl
cXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9
IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJl
cXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGlj
IHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQ
YXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0
NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9
IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3Vy
Y2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9z
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0g
cmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywg
c3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9r
ZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJh
c2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rv
a2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0
dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rv
a2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5k
KCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4
MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVl
OTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBA
IC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVy
TmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29s
IHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBO
bywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIq
IHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0
aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1l
T3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0
U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJ
SUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJh
bCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9y
aWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGly
ZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwog
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwog
ICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJj
ZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7
CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBz
b3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNl
Q09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7
CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1s
Il9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9u
Q09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQ
KQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXIt
UG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9u
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9u
Q09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0
aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3Rk
Ojppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwg
SFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRp
YyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29u
c3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9
IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0g
YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNy
b3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNh
bWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJl
LWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVk
ID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmln
aW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1
aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9
IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUt
Y29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVk
ID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAg
PT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
fHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVp
cmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNh
dXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
QW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291
cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJl
ZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3Qg
ZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
V2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVk
aXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3Jw
LgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3Rh
dGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3
MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRS
dWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2Vy
dmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRt
bCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9z
IH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBl
IiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3Jp
cHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNj
cmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9
XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVz
dChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRh
KCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNz
ZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVl
M2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0
bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRt
bD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJl
bnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+
PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAi
PGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAg
LTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRt
bD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmlu
ZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIz
N2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsx
MDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNv
bnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVy
bCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJv
YXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBT
dHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAK
ICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmlu
ZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5
YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAg
VEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9y
RWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVu
dCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVm
XTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiks
IFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQu
b3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2
YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMx
YWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gu
bW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdl
YlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1l
CiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RG
aW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5t
bQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3
ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3
ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25I
YW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNl
KDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAg
ICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2Vi
U29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAg
ICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5l
Y3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFj
Y2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJp
YWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNv
bm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9y
PHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtK
bEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAg
ICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1Jz
aGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVC
R1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThN
ZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAg
ICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRp
ZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5
MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXko
KQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEy
TUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9P
VjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNh
bXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZV
OGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZk
SkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0
RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2Rl
ZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21h
aW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMx
YWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4
MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRl
c3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAK
QEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2
b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAi
IiB9OworICAgIFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxT
dHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJp
bmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmlu
Z0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBT
dHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5n
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJp
dFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0
cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457073</attachid>
            <date>2022-04-08 08:16:33 -0700</date>
            <delta_ts>2022-04-08 09:34:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408081632.patch</filename>
            <type>text/plain</type>
            <size>154264</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMy
NmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVk
KHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJl
YW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAg
ICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRT
eXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0
cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAg
ICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXgg
MWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUy
NTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFw
cGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAg
Y29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQ
YWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpE
ZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJl
Z2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6
Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlh
VHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAg
IH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19D
QVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9S
ZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3Bw
CmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4
ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9t
U3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUoKQogICAg
IH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRf
Y29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVj
TmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZy
b21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFp
biBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRv
IGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2Vk
IHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUy
NWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0
NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAg
ICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAg
ICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAg
IGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJf
U0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3Qg
U3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5k
ZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUx
MTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0
cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4
dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUlu
ZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmlu
ZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFj
YmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3
YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9u
c0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3Jl
cXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5k
ZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9S
KSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRh
aW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTEx
MDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIy
NDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApA
QCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3Vw
cG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dM
T3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFh
ZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5
YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
QEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0
U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVu
dW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2
MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2Rm
ZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmlj
ZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAg
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5p
cXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3Mo
ZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFz
c0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGRldmljZUNsYXNzQ2hhci5nZXQoKSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8i
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNl
TWFuYWdlci5jcHAKaW5kZXggNDFjOGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIw
OS4uYzJlODY5N2FmZGI2ZmRkODRkNjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVy
RGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBn
X3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsK
ICAgICB3YWl0UmVzcG9uc2VTaWduYWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcg
cmVxdWVzdFBhdGgob2JqZWN0UGF0aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0
cmluZzo6ZnJvbUxhdGluMShvYmplY3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRo
ID0gcmVxdWVzdFBhdGgucmVwbGFjZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2Uo
dG9rZW4sIHNlc3Npb25Ub2tlbik7CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBk
ZXBlbmRpbmcgb24gZGV2aWNlLnR5cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRi
NTQzMjZjYzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJm
NTBkNjYwZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ns
aXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJM
KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5IGZpbGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEo
dXJsRm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAg
ICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEds
b2JhbCkpOwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOwor
ICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUp
OwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VT
dGdNZWRpdW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAg
ICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEds
b2JhbCkpOwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlz
dHNBKGRhdGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0g
VVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBh
dGgoKTsKKyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBh
dGgoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAg
ICAgICAgIGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAg
ICAgICAgICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFP
YmplY3QqIGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+
R2V0RGF0YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkg
dGV4dAogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
c3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0
ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3Rv
cmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVs
c2UgewpAQCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJh
Z0RhdGFNYXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1
bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVS
TCBpZiBwcmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0
cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAg
dW5zaWduZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxT
dHIpOwogICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQx
MmJiYzM4YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBA
IC04NDAsNyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRl
eHQmIHRleHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0Ns
aXBib2FyZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25l
cikpIHsKICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0Zf
VEVYVCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVy
cyBhcyBMYXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQg
dGhlIHJpZ2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3Rh
dGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQu
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhj
YkRhdGEpKSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAg
IDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgs
NyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVu
dChGcmFtZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9
IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsK
ICAgICAgICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFs
TG9jayhjYkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAg
ICAgICAgICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAg
ICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3Nl
Q2xpcGJvYXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRl
eHQoY29udGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NT
TEtleUdlbmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3
YmI3NWRhNzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0
ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBz
aG91bGQgYmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2
LmFwcGVuZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRD
aGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBj
b25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFl
MTY1YjJmZTJjZTAzYjFmMGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2Iw
Njg3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAg
ICAgc3dpdGNoIChjYXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAg
ICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5v
bmUiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9h
ZFN0cmF0ZWd5OjpOb3JtYWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAg
ICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6RWFnZXI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVy
biBTdHJpbmcoIkVhZ2VyIl9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRi
OWM3YTM1OTdjMjgxZDEwYTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5
OThhZjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQog
I2lmIFVTRShJTlNQRUNUT1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5n
OwogICAgIGlmIChjb25zdCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9U
QVJHRVRfQUREUiIpKQotICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZW
YXIgfTsKKyAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVu
dlZhcik7CiAjZW5kaWYKICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAg
ICAgICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQg
V2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAg
ICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0g
U3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9y
dD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3Ro
KSAmJiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3Ry
aW5nKGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5n
dGggPSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9z
dD0iLCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmlu
ZyhhcmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21M
YXRpbjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCkBAIC05NywxMyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQg
YXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChh
cmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgdGFyZ2V0U3RyTGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYg
KCFzdHJuY21wKGFyZywgIi0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3Ry
aW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsg
dGFyZ2V0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KICNlbmRpZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2Vydmlj
ZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVy
cywKIAogICAgIGlmICghbV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vz
c2lvbiA9IG51bGxwdHI7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmco
InNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVj
YXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCkBAIC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJE
cml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAog
ICAgICAgICAvLyAyLjEuIElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNl
dCB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2Fw
YWJpbGl0aWVzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVx
dWlyZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgp
KSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNo
IGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1
aXJlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2Fw
YWJpbGl0aWVzIHdpdGggYXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVp
cmVkQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxp
dGllcyk7CiAgICAgaWYgKCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFs
d2F5c01hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKQEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+
YXNBcnJheSgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAg
ICAgICAgICAgICAvLyAzLjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90
IGEgSlNPTiBMaXN0LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1l
bnQuCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0
Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0
aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAg
LTc0OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6
OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgYXV0byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxp
dGllc0xpc3QtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2Fw
YWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
IkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBm
b3VuZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAg
ICAgfQogICAgICAgICAvLyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSBy
ZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZp
cnN0IG1hdGNoIGNhcGFiaWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9
IHZhbGlkYXRlZENhcGFiaWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAg
IGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJz
dE1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIH0KIApAQCAtNzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZl
clNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAg
fQogCiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJG
YWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9Owog
ICAgIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vz
c2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAg
Ly8gwqc4LjEgTmV3IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRy
aXZlci8jbmV3LXNlc3Npb24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpT
ZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lv
bnMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11
bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9u
KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNh
cGFiaWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2gg
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFj
dGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAK
ICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAg
aWYgKCFkdXJhdGlvbikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlk
IGluIHBhdXNlIGFjdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAg
LTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051
bGxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBz
dWJ0eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBl
ICE9ICJwYXVzZSIpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFj
dGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYg
YWMKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3Vi
dHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlz
IGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JiBhYwogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAg
IGF1dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAg
IGlmICgha2V5VmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOwor
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScg
aXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+
YXNTdHJpbmcoKTsKICAgICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9y
IGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9u
Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAg
ICAgLy8gRklYTUU6IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcg
KzE5OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9u
VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0
byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAo
IWR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBp
biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
ICAgIGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQs
NyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBh
Y3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmpl
Y3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50
SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmll
cigpKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlk
IHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2Vi
IGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJP
cmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIw
MTUsNyArMjAxNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09O
OjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNl
IGlmIChvcmlnaW4gPT0gInBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4g
PSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxs
b3B0IH07CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29y
aWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3Rh
dGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRl
bSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdl
dFZhbHVlKCJ4Il9zKSkgewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
eFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIp
OworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9CiAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcg
QEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJ5Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5S
YW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsy
MDU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09
ICJwb2ludGVyQ2FuY2VsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlw
ZTo6UG9pbnRlckNhbmNlbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7
CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yg
cG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBh
cmFtCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1
dG8gYnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAg
ICBpZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1
dHRvbiA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24p
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0
dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxp
ZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3Vz
ZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAg
YWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVs
IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5n
JiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0g
dmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAg
IGlmICghZGVsdGFYKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZh
bHVlKCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAg
ICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9z
KSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVs
dGFZVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMg
aW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRl
clBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0g
cGFyYW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRh
KSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50
ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2Jq
ZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzks
NyArMjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9j
ZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRl
clR5cGUgPT0gInRvdWNoIikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50
ZXJUeXBlOjpUb3VjaDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
cGFyYW1ldGVycyBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBh
cmFtZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8
QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewog
ICAgIGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7
CiAgICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsy
MjA1LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5w
dXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAi
bm9uZSIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25l
OwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZh
bGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0
cmluZygiaWQiX3MpOwogICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBz
ZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNl
cXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lv
bi5nZXRPckNyZWF0ZUlucHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBl
KTsKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1h
dGNoIGlucHV0IHNvdXJjZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
QWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291
cmNlLnR5cGUgPT0gIElucHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBv
aW50ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJj
ZSBwb2ludGVyIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIg
dHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0
byBhY3Rpb25JdGVtcyA9IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAg
ICAgaWYgKCFhY3Rpb25JdGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9u
IHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2Ui
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsy
MjQ3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1
dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0g
PSBhY3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0
ZW0pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFj
dGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVj
dCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAg
LTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMo
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFj
dGlvbnNBcnJheSA9IHBhcmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbnNBcnJheSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZp
Y2VHdGsuY3BwIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAK
aW5kZXggYTA5ZDA5NDFiYTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZh
MjkxMWFmMTkxYjkzNjcwMTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9n
dGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
OwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwog
fQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRj
aENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmpl
Y3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25z
dAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIg
Ii93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2Vy
Iik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAi
L3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIi
X3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4g
eyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxi
YXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVy
U2VydmljZVdpbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2lu
LmNwcAppbmRleCA5MzY3MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIx
NjcxY2NhZGEyNWU3MzcxZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJp
dmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdl
YkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmls
aXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7Cisg
ICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBh
YmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUu
Y3BwIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXgg
NjU2YTY3NmFiMmNhMTJhMDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRl
ZjdlM2UyZDc0MDVhNWU2ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93
cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2Vi
RHJpdmVyU2VydmljZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAg
IGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAg
LTEwNSw3ICsxMDUsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBh
YmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBt
YXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsK
LSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsK
KyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3Mp
OwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAi
LS1hdXRvbWF0aW9uIl9zIH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENh
cGFiaWxpdGllcy5nZXRPYmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGU0ZDU2YzBiZTQ5MmE5
YmUyMWM4YWU2OWI3MTQzZmYwMWMzNGZkZC4uNzU5NzA3MWJjZWIxNDk0NjZiNjRlMWZkZTU4ZGE2
YWE5MTBlYzkyZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6
ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdl
Lm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3Rl
VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06
CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxl
cnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29u
bmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQ
U2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgU3RyaW5nKGNvbnN0
IGNoYXIqKSB3aXRoIFN0cmluZzo6ZnJvbUxhdGluMSgpIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5k
ZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYy
YTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENv
cHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3
ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVY
UEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3Jp
Z2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0
cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBv
cmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdp
bmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpA
QCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5n
SGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9u
YWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQi
IH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVF
KG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5p
bXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFs
IHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShv
cmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsK
LSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0
Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAg
ICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEo
b3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgy
ZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAt
MTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdN
aXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVt
OjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxl
Il9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAg
RVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5
ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJi
MGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVy
KQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50
ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBh
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIs
IDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3
MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlk
ZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFw
cGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVm
Z2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3Ms
IGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5
U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVu
ZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBw
ZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFj
dGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVp
bGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRT
dHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJp
bmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJp
YWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
YWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9z
LCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIi
KTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFi
Y2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFC
QyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2Ug
dXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9u
J3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFi
Y2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
ci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxk
ZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJC
IiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUg
U3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGlu
IHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5p
czhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIu
bGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwg
YnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAg
ICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9T
dHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIw
MTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5p
bXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hh
bmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0
IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmlu
ZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFj
aXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBs
KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3Qg
YWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCku
CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdl
ZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNU
X0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
X3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBv
ZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVu
dCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHko
KTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5k
KCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBh
Y2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5n
MSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAs
MTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5k
KCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgx
MFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVp
bGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsK
IAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBF
WFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYi
X3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1
aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
RXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFy
Kj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmlu
ZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIx
LnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBi
dWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09
IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBi
dWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5n
KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRv
QXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRT
aHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1w
bC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIz
MzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRF
U1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQog
CiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBT
dHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1Qi
X3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAK
ICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1
MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRF
U1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7
CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJp
bmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVy
YWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9
OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAg
U3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVD
VF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3
YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyAr
NDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAg
ICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5n
Vmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7
CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5n
VmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQ
RUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0
LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAg
ICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0
cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5n
KCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxs
KCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApA
QCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVV
bml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5n
IGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmll
dyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQ
b2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9y
cykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9p
bnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0
ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3
ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmll
dyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRD
b2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAg
Kzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0
Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJ
SSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29h
Il9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6
OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAg
IEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+
KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTgu
LjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJM
LCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQo
KSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3Ry
aW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwu
aG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAg
IEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFz
c3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXgu
aHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIp
LCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12
YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyks
IGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwu
cGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJs
LnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFz
dFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1
cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50
aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdt
ZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFs
IHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFT
Q0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RB
bmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFz
c3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgw
ODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0
dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9i
L2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihX
VEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNU
X0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwx
ID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwx
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwg
dXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
QEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1
cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtl
eTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsK
ICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVj
dG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7Imtl
eTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwg
dXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVS
TCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5
MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEy
KTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwg
eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsg
eyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2
YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAK
ICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0s
IHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsi
a2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwy
MSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJs
MjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7
eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3Mg
fSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIz
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwg
dXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAi
PSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQp
LCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7
Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0
ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7
ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAg
IAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9z
KTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMx
MzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAg
CiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9z
KTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
NTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYw
YzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5
MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5j
cHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBU
RVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9
KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBt
YXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJr
MSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0
KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0g
KEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAg
IHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4u
NWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVT
VChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigi
RXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
Lmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgi
LCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNp
dCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9
ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRl
cmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmlu
ZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zy
b21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJh
bCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExp
dGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJ
SSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVs
bCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBX
VEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxs
byIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0
cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4p
CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4
cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3Rl
ZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJv
bUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdS
ZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5n
VG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2sp
KTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIw
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkp
OwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVY
UEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAK
ICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykp
OwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFk
aW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwog
CiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNo
IGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28g
Z29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVj
aWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
ImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZp
bml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
X3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJz
ZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJf
cykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYs
IFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
VGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3Mp
LmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9z
LCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3Qi
X3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShT
dHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRF
U1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4
KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdB
dChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUi
X3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmlu
Z0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIp
OworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgp
LT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYz
LDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1Vu
aWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAg
IFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVs
bCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltd
ID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2Ex
NGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2Uw
YzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygi
YXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1
czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAg
dGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6
OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVy
blN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6
VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxy
XFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6
T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUz
NWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3Qi
KTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hh
bmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25k
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citj
b25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRl
eHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlz
ZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNs
YXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmll
bGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVs
ZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIz
ZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0
LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwi
XCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIp
ICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAg
U3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7
IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4x
KG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1
b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlR
dW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsK
QEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAg
ImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAo
Yil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3Ry
aW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJl
Y29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41
NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRD
b2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFs
dWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWRE
ZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJV
RSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAm
V2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkp
OwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXgg
YTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUz
ZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRF
U1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQ
RUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNc
dTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVr
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHci
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54
bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9F
UShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVY
UEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
cjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2
U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9t
YWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWlu
LkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2Nh
bEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XD
hMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ii50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJs
b2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9t
TGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9z
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNi
NGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5j
cHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3Bz
KQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewog
ICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVv
Zih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3Ry
aW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGlj
IH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUp
OworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsK
IAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJl
c3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3
YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdi
YWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBj
cmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3Rpbmdf
ZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRl
bnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVM
TChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBi
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBh
dGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVm
ZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0
YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihG
cmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0Vt
cHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTlj
ODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0
YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBh
cnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0Yo
VVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VS
TCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3Ry
aW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQi
KX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNv
ZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0
aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBz
cGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVt
cHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0Yo
VVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgi
aHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDov
L2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5
MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEo
IklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7
MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6
Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAl
QjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAl
RDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwg
d2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0
cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBl
bXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFi
YXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQz
NTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0
YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERh
dGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hv
dWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5z
CiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZy
b20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0
Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFi
YXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRp
c2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20g
dGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAg
LTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRl
bGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3Qg
cmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAg
Ly8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAg
ICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0
Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdp
bldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlv
biBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhl
CiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3Ry
aW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rv
cnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBk
YXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRo
KGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigi
aHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1Qo
RGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBv
biBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRl
ZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBm
cm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ug
d2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBk
aXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0
aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0
b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0g
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmlu
Zyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9y
eVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0
Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0
MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
QEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0
eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NC
b1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRW
bGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNY
Rk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJo
Z095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhC
Z3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRl
KCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURD
QmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50
aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4
bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09H
ZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAg
ICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0Vk
SWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJt
SS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5
dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRp
ZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1Mzhj
Li42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tl
bkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAg
ICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAi
UE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwg
cmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91
bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRv
a2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2Vu
Il9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0
YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2Vu
QW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9
IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikg
OiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2ln
bmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxl
bmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcg
QEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tl
blNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBs
ZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmco
ImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5n
UGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3Mp
IDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5n
LmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy
dCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2Zjky
Njk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQog
CiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNz
IERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciog
c291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0
aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGly
ZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJ
SUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlM
aXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dh
cCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNv
bnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3Ry
aW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3Ms
IFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlv
bkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0
aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlv
bkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5h
dGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2Ug
ZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJf
cyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpw
YWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0
cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBh
bGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJj
ZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQ
ICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGlu
YXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0
cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAm
JiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291
cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmln
aW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGlu
YXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNh
bWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAg
IEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5h
dGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3
YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIx
MSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJj
ZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1p
c3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAg
ICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhw
ZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9y
aWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8g
V2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1z
YW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhv
dXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tX
ZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFk
NzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJj
NzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkg
QEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9u
IGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1d
KFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxp
emUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7
ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6
ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0
KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlw
dCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250
ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVM
aXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0
UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5z
dHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIs
IGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJj
YmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0
NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0y
ODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAK
LWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScg
c3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1l
W10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUg
aWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3Rh
dGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3Rl
eHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNo
YXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3Rh
dGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJp
bWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2Ri
OTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5
ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1l
bnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRl
eHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5
LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3
LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJv
YXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5n
XSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBT
dHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmso
d2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5
ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAx
OTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmll
d0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRN
TEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAg
ICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIw
Yzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RU
b1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcg
cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGlu
aXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJf
cyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNi
NGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMx
M2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZl
ci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2
Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJV
cGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBn
cmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0
QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNv
Y2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwK
KyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRW
YWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1
ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9
KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVz
dENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3Rs
WWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6
anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5Z
Ylc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95Nkxl
dSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWta
azdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0
ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZN
b3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50
OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhT
S3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1
ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4
dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgz
eTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVS
dz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAg
IGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVL
ZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQg
YS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJX
ZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0
MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2
NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xz
L2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0g
Y2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMo
KQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3Ry
aW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5p
bXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFu
RW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwg
PSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOp
c3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLD
qXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmlu
Zy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2
ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485561"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457075</attachid>
            <date>2022-04-08 08:39:08 -0700</date>
            <delta_ts>2022-04-08 08:57:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408083907.patch</filename>
            <type>text/plain</type>
            <size>156304</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAK
aW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0
NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlU
aHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5
U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAg
ICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGll
czo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9O
RSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0
aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlT
eXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9y
dGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJp
bmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3Rl
bXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7Cisg
ICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdT
VF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMu
c2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1
NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNl
OTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5o
CkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+
KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7
CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJs
ZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dl
ZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYg
ZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1
ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBl
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdS
ZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFw
cGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVk
aWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIg
PSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
OjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkp
IHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxh
dGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1U
eXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1Bh
ZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRp
b25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZh
bHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1l
ZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2
MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0
cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAt
NzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJh
Y3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9u
KGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7
Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2Rl
Y05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8g
UmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIg
anVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAg
ICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBi
NjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0
NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXpl
X3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6
ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEw
ME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0s
VDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVS
X1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVu
digiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAg
ICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZm
MGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWlu
dCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAg
ICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0
NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxz
ZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewot
ICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBt
X3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
Pig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
UkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92
ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5k
b3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVk
YWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3Bl
bkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVy
biBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9F
WFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZh
NWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29u
dGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0
cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFND
b3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5NzNkOWNm
YzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEwZTNkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigpCiAgICAg
LCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmluZyBzaG93
RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAgYXV0byBz
aG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJLSVRfU0hP
V19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwgPSBTZWNv
bmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sgJiYgbV9m
cHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMx
NDEzNjFhOC4uNTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3Bw
CkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6
YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+
IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgp
KSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkp
KTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNz
Q2hhci5nZXQoKSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
aW5kZXggNDFjOGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2Fm
ZGI2ZmRkODRkNjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAg
LTk0LDcgKzk0LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0
KHJlc3VsdC5nZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVz
cG9uc2VTaWduYWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgo
b2JqZWN0UGF0aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxh
dGluMShvYmplY3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBh
dGgucmVwbGFjZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Np
b25Ub2tlbik7CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24g
ZGV2aWNlLnR5cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ns
aXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZjYzg4YjU0
ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYwZWRlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGll
c1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0
KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQog
ICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9ybWF0KCks
ICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAgICAgICBjaGFyKiBk
YXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwotICAg
ICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAgICB1cmwg
PSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAgICAgICBH
bG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0
b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVj
dCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEK
ICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBjaGFyKiBk
YXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwogICAg
ICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRhdGEpIHx8
IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJM
V2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKKyAgICAg
ICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nOjpm
cm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAgICAgICAgIGlmICh0
aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAgICAgICAgICAgfQpA
QCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3QqIGRhdGFP
YmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YShwbGFp
blRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAogICAgICAg
ICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2Jh
bCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7
CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpAQCAtNjEz
LDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFNYXAqKQog
UmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCogZG9jLCBj
b25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBwcmVzZW50
Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0cmluZyBzcmNVUkxT
dHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWduZWQgbGlu
ZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwogICAgIGlm
IChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4YmNmZjhk
NTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAsNyArODQw
LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQsIFBs
YWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1h
dEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKICAgICAg
ICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkpIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBMYXRpbi0x
LCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJpZ2h0IGVu
Y29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nhc3Q8Y2hh
cio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSk7CiAg
ICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlw
Ym9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSYgZnJh
bWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJv
YXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAgICAgICAg
ICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEp
KTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAg
YXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAgICAgICBH
bG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwg
c3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5l
cmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRv
cldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRhNzE5NS4u
MjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAgLTMxLDcg
KzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhW
ZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQgYmUgbG9j
YWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVuZCgiSGln
aCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJp
bmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBVUkwmIHVy
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAz
YjFmMGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZl
ci9TZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChj
YXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VM
b2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpO
b3JtYWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVh
Z2VyIl9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
V2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgx
ZDEwYTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThhZjJmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGludCBX
ZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lmIFVTRShJTlNQ
RUNUT1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwogICAgIGlmIChj
b25zdCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9UQVJHRVRfQUREUiIp
KQotICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIgfTsKKyAgICAg
ICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVudlZhcik7CiAjZW5k
aWYKICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3Qg
Y2hhciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2Vy
dmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVz
YWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxV
UkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJn
dltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2
W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAg
ICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3Ry
aW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBv
cnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGlu
MShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4o
Ii0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3Ry
TGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0
U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsg
aG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC05
NywxMyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgdGFy
Z2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGFyZ2V0
U3RyTGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFy
ZywgIi0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5nLmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsgdGFyZ2V0U3RyTGVu
Z3RoKTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcg
KyB0YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNl
bmRpZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Np
b25PckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlm
ICghbV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxw
dHI7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVs
ZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdl
IGNyYXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBA
IC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAy
LjEuIElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUg
dG8gYW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmls
aXRpZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQg
aW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmls
aXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdp
dGggYXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0
aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAg
aWYgKCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3
ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNz
Q2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2Fw
YWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwog
ICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAv
LyAzLjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0
LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxp
ZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5
LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBh
YmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0
byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdl
dChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7
Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2Fw
YWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJz
dE1hdGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAg
ICAvLyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5
aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNh
cGFiaWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENh
cGFiaWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RN
YXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAt
NzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYg
KG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
ODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3
IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNl
c3Npb24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2Yg
YWN0aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTks
NyArODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09O
OjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xp
c3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpP
YmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1
cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlv
bikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0
aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFj
dGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkx
Myw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0
aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIp
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBp
biBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZh
bGlkIG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IApAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlv
bjo6U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBr
ZXkgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwog
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFs
dWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
dmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBm
b3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsK
ICAgICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3du
IGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6
IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25J
dGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rp
b25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9
IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0
aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5k
dXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMg
Ym9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5W
YWx1ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5P
YmplY3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAg
ICAgICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50
IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2Jq
ZWN0IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4g
PT0gInBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3Jp
Z2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJv
Y2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBh
Y3Rpb24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9z
KSkgewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRf
TUlOKTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZv
ciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAg
ICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJv
b2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0
aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJ5Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVl
LCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZh
bGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJp
bmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2Fu
Y2VsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNh
bmNlbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rp
b24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQog
CkBAIC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2Fz
ZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRv
blZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2ln
bmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZh
bGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRl
ciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0
b24udmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
Y3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
CiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlw
ZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
dHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFs
dWUoImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJl
ckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFY
KSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0y
MTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVl
bEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRv
IGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAg
ICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElO
VF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlv
bi5kZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMo
SlNPTjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0Rh
dGFWYWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRv
dWNoIikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3Vj
aDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBp
cyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMg
aW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0y
MTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJv
Y2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0
aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFh
Y3Rpb25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rp
b24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1
ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAg
ICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2Ug
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Np
bmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3Mp
OwogICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZh
bGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0
ZUlucHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAo
aW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNv
dXJjZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0g
IElucHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9
IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNl
cXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5
cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVt
cyA9IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rp
b25JdGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7
CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVl
bmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9u
SXRlbXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVt
cy0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3
OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9
IHBhcmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJh
eSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGlu
dmFsaWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5
NDFiYTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkz
NjcwMTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2Vi
RHJpdmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVy
U2VydmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2Fw
YWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFi
aWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVz
LnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRX
aW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcg
KzExMCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3Rr
LSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2Fw
YWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGst
IiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0
aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAppbmRleCA5
MzY3MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcxY2NhZGEyNWU3
MzcxZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dp
bi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJE
cml2ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7CisgICAgY2FwYWJpbGl0
aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0
V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNh
MTJhMDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVh
NWU2ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVy
U2VydmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2Vydmlj
ZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0
aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRm
b3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dS
ZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUs
NyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJp
bGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9u
Il9zIH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5n
ZXRPYmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGU0ZDU2YzBiZTQ5MmE5YmUyMWM4YWU2OWI3
MTQzZmYwMWMzNGZkZC4uNzU5NzA3MWJjZWIxNDk0NjZiNjRlMWZkZTU4ZGE2YWE5MTBlYzkyZiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY1IEBACisyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgp
IGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
cm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0
YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJh
c2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAg
ICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVu
bGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgt
W1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhN
ZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2Vi
U29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRl
c3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0
UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgU3RyaW5nKGNvbnN0IGNoYXIqKSB3aXRo
IFN0cmluZzo6ZnJvbUxhdGluMSgpIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4
YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJh
YjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcp
CiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwp
OwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEy
MzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNv
cHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgp
KTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0
cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3
b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAg
RVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVm
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7
Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09u
ZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJW
T3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9O
VUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcg
c3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmlt
cGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2
NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3
IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkK
IHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFw
cGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxl
RGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVj
NTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4
ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRi
OWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4
MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERl
ZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
CiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMo
IiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsK
ICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVp
bGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWls
ZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2
ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAg
c3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSks
IGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkK
IHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAn
QycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFC
QyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmco
JmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9z
KSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRo
ZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRo
ZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7
CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkg
KyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUs
ICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5
ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRl
ciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0
eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAg
ICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAz
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAt
MTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7
CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxk
ZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50
IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0
cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJp
bmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
X3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmlu
ZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFj
aXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRl
ci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5
LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJp
bmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3Ry
aW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJp
bmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQ
RUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJp
bmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwg
c3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAt
MjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1Us
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Iiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpA
QCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAg
RVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmlu
ZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7
CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBh
Y2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNl
cnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9
PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0g
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3Qg
YWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21T
dHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIx
MjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXgg
YTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1
ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJp
bmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwg
U3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
KCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFM
U0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIp
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7
CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUx
MWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQy
LDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJp
bmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5n
IHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJp
bmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAot
ICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmlu
ZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBz
dHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZT
dHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5i
YWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3
IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHko
KTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5n
IHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0
aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmll
d1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NF
RUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8i
KSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykp
OwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVY
UEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0
MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0p
KTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1w
dHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8i
KTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyho
ZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAg
LTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3Ig
PSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcp
OwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtp
dCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNv
ZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJl
Z2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBU
RVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3Rl
cnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUko
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxB
U0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEo
IvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJp
bmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkp
LmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmlu
ZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQz
MTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1
Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBF
WFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3Ry
aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4
MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFt
ZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3Vy
bC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJs
LnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5x
dWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25l
bnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7
CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmll
cigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5n
KQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1
cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewog
ICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
YXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxE
YXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJM
KCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyAr
Mzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAg
ICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9z
KTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkx
PXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZl
Y3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwx
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVy
bDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJs
MTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAg
ICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1
MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0
VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIg
e3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwy
Il9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAg
ICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAi
Il9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJs
MTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFs
MSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2
YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwz
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5
MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTks
IHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAi
dGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywg
IiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwg
dXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0
ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9y
MjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7
IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcy
OCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9z
IH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1
cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwg
dXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8i
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
MTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVy
bDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwg
dXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5
NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVh
MDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5
ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0
b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsK
LSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9z
KTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYz
Il9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWly
LnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3Ry
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5k
ZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3
NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmlu
Z0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsK
ICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0
ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmlu
Z0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwg
c3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlz
OEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcg
KzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBT
dHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUo
c3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpz
dHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5n
OwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExp
dGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAg
ICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsK
IAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWls
IGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdu
b3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFy
YW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0
dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBz
dWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Iiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJl
cnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmco
InN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJf
cykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
Ojpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFz
aCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmlu
ZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5n
MS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkp
OwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChX
VEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVD
aGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJp
bmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdi
JyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0Yzhl
YzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAg
ICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5T
dGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhm
ZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXgg
OWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDli
MDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEo
IlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZp
bGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25p
dG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXgg
NzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdl
MzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAg
VEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAg
ICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAot
ICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9u
QVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVv
dGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29t
bWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNv
bW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5R
dW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1
LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3Ms
CiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3Ms
Ci0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRl
eCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVh
ODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNU
KEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFu
ZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6
OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNv
ZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxl
VmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5
ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNU
KEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4
ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZj
YmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNT
dWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmlu
Zyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihT
dHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20u
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4u
dGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3
LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3
LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEu
dHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJp
bmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJy
NC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2Rm
LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGly
ZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxv
Y2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21h
aW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOk
w7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQ
RUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNo
RGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4u
YTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4
ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAg
c25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVz
dC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0
b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUg
fTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAg
ICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAg
ICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAg
ICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJm
NzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1
ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwog
fQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwg
Y3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAg
QVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkg
PT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6
ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91
cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0
RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMy
ZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAl
OUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDov
L2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJz
VmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEo
U3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEi
KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZs
YXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRw
Oi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCks
ICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Qv
P3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywg
JnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklT
Ty04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEi
KTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAs
IDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/
Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3Ms
IGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsK
ICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMp
LCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygp
LCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VU
cmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlk
MjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2Vy
VGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0
YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0
aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5k
IERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBA
QCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4
aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgs
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFi
YXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBp
bmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0
YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQs
NyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5n
RW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3Rp
bGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0
YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwi
KTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4
U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNr
ZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3
ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRl
ciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZy
b20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRh
YmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06
OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1
cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBA
IC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hl
bkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5
IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8v
IFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhl
IERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQz
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hh
bGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3
NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsx
NDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJt
aUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95
aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lN
Rk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0Jv
VVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmpt
VEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2
YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1J
SUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFV
RUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0
SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1s
TUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6
alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1
cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIK
LSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1Jr
djlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0
RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpp
bmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgw
MmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0y
ODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNy
ZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAv
MS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6
ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rv
a2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMy
MCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3Jl
dFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1
ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVl
c3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZv
aWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0
eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5W
ZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVu
Z3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9
IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5k
YmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNz
IElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lk
ZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAs
IElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVy
U2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291
cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3Rp
bmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1
c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNP
T1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3Vy
Y2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50
LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAg
ICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9z
LCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAg
IGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsK
KyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBv
bGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25S
ZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBI
VFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywg
SFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQy
Nyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBj
aGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBi
b29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0
cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAo
c291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRl
c3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291
cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9z
ICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVF
KHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0
IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0s
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAg
IC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4K
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBi
ZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEg
c3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBh
bmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJl
ZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJW
aWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2Fi
MTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2
aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24p
IHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250
ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsK
KyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5
cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewog
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8
Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRl
bnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3Ms
ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2Ny
aXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNo
YXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0
LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1Njdm
NzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2Zi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDgg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIg
cGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUu
aHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1l
JyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1
dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVb
XSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIK
ICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3
ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJM
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29w
eVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVu
dUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsK
ICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3Rl
Ym9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBh
YnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQo
KSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1
YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJM
KQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1l
bnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcg
KnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNh
ZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwg
KilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJh
bWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0
cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyht
ZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMw
ZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBA
QCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndl
YnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAg
ICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUo
cmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAor
ICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0
KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVu
Z3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYz
Myw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRl
KCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VV
K3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0
alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcv
VysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3Zq
WkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4
TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERl
Y29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVk
Q2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2Vy
dmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5
L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkx
c3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAg
ImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNn
dGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAg
InFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2Rl
ZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJl
dHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRi
L2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIv
bWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4u
YzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBs
ZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0
cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAg
ICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAg
ICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcg
eyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3Ry
aW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07Cisg
ICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAg
ICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAK
ICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5v
XHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457079</attachid>
            <date>2022-04-08 08:57:09 -0700</date>
            <delta_ts>2022-04-08 10:14:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408085708.patch</filename>
            <type>text/plain</type>
            <size>157291</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAK
aW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0
NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlU
aHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5
U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAg
ICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGll
czo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9O
RSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0
aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlT
eXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9y
dGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJp
bmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3Rl
bXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7Cisg
ICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdT
VF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMu
c2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1
NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNl
OTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5o
CkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+
KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7
CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJs
ZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dl
ZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYg
ZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1
ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBl
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdS
ZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFw
cGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVk
aWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIg
PSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
OjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkp
IHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxh
dGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1U
eXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1Bh
ZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRp
b25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZh
bHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1l
ZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2
MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0
cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAt
NzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJh
Y3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9u
KGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7
Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2Rl
Y05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8g
UmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIg
anVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAg
ICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBi
NjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0
NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXpl
X3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6
ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEw
ME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0s
VDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVS
X1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVu
digiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAg
ICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZm
MGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWlu
dCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAg
ICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0
NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxz
ZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewot
ICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBt
X3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
Pig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
UkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92
ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5k
b3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVk
YWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3Bl
bkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVy
biBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9F
WFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZh
NWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29u
dGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0
cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250
ZXh0QXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJi
NzM5N2ExOTMzMTE2NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2
OWVkN2U3Nzk3YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRy
aWJ1dGVzLmNwcApAQCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMmIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0Uo
T1BFTkdMX0VTKQogICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwog
Ci0gICAgICAgIFN0cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5z
aW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1
cHBvcnRzTlBPVFRleHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3Rl
eHR1cmVfbnBvdCIpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2Ug
PSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1
ZDNkMmUyZWY5YmU5NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZh
MWQ3OTNkOThjMTEwZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3Bw
CkBAIC0zNCw3ICszNCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVy
RlBTQ291bnRlcigpCiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQog
ewotICAgIFN0cmluZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQ
UyIpIH07CisgICAgYXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
Z2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1f
ZnBzSW50ZXJ2YWwgPSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsK
ICAgICBpZiAob2sgJiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQz
MDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4
NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkK
IAogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAg
ICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2Vf
Y2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZp
Y2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQoKSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgi
QXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFjOGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcy
ZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRkNjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0
cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMK
ICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0
cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWduYWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBT
dHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0
aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmplY3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Np
b25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFjZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJl
cGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sg
dGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2Rh
NTU3OWRiNTQzMjZjYzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTli
NDg1NDJmNTBkNjYwZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcg
Z2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJz
aW9uUG9saWN5IGZpbGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdl
dERhdGEodXJsRm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJ
SQogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3Rv
cmUuaEdsb2JhbCkpOwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0
bGUpOworICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwg
dGl0bGUpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJl
bGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5n
IGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVy
c2lvblBvbGljeSBmaWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAg
ICAgICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3Rv
cmUuaEdsb2JhbCkpOwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZp
bGVFeGlzdHNBKGRhdGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAg
dXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5
c3RlbVBhdGgoKTsKKyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5
c3RlbVBhdGgoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAg
ICAgICAgICAgICAgIGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJs
OwogICAgICAgICAgICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQo
SURhdGFPYmplY3QqIGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9i
amVjdC0+R2V0RGF0YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8g
QVNDSUkgdGV4dAogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soc3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAg
ICAgICB0ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxv
Y2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAg
ICB9IGVsc2UgewpAQCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29u
c3QgRHJhZ0RhdGFNYXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRN
TChEb2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4g
YmFzZVVSTCBpZiBwcmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOwor
ICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7
CiAgICAgdW5zaWduZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShz
cmNVUkxTdHIpOwogICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQz
ZmJlMjQxMmJiYzM4YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRi
MzNhNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2Fy
ZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQ
bGFpblRleHQmIHRleHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAo
OjpJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQo
bV9vd25lcikpIHsKICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERh
dGEoQ0ZfVEVYVCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hh
cmFjdGVycyBhcyBMYXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElz
IHRoYXQgdGhlIHJpZ2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5n
IHsgc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAg
IHRleHQudGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFs
TG9jayhjYkRhdGEpKSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAg
ICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3
ICs4ODgsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRG
cmFnbWVudChGcmFtZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNi
RGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRh
dGEpIHsKICAgICAgICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4o
R2xvYmFsTG9jayhjYkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7
CisgICAgICAgICAgICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsK
ICAgICAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6
OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50
RnJvbVRleHQoY29udGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFj
MTgwZWY3YmI3NWRhNzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRv
cldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRv
cldpbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRT
dXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3Ry
aW5ncyBzaG91bGQgYmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsK
KyAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNL
ZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxl
bmdlLCBjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJi
NTNlZGFlMTY1YjJmZTJjZTAzYjFmMGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1
ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25z
dAogCiAgICAgc3dpdGNoIChjYXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkp
IHsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIk5vbmUiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQ
YWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIp
OworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRT
dHJhdGVneTo6RWFnZXI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAg
IHJldHVybiBTdHJpbmcoIkVhZ2VyIl9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNh
Yzg3ZmRiOWM3YTM1OTdjMjgxZDEwYTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0
ODQ0ODE5OThhZjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2
aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02
MSw3ICs2MSw3IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogI2lmIFVTRShJTlNQRUNUT1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0
U3RyaW5nOwogICAgIGlmIChjb25zdCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRS
SVZFUl9UQVJHRVRfQUREUiIpKQotICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJn
ZXRFbnZWYXIgfTsKKyAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRh
cmdldEVudlZhcik7CiAjZW5kaWYKICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kp
IHsKICAgICAgICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBA
QCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAg
ICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAg
IHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3Ry
aW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4o
Ii0tcG9ydD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3Ry
TGVuZ3RoKSAmJiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5n
ID0gU3RyaW5nKGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RT
dHJMZW5ndGggPSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywg
Ii0taG9zdD0iLCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9
IFN0cmluZyhhcmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogCkBAIC05NywxMyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRl
bWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9
OworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0p
OwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgdGFyZ2V0U3RyTGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAg
ICAgaWYgKCFzdHJuY21wKGFyZywgIi0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFy
Z2V0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmco
YXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFy
YW1ldGVycywKIAogICAgIGlmICghbV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAg
IG1fc2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBT
dHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0
ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVz
PiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVj
dCYgcAogICAgICAgICAvLyAyLjEuIElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmlu
ZWQsIHNldCB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVp
cmVkQ2FwYWJpbGl0aWVzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYg
KCEocmVxdWlyZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09i
amVjdCgpKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExl
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRh
dGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAg
IHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENh
cGFiaWxpdGllcyk7CiAgICAgaWYgKCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJp
bGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2
ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAg
ICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNW
YWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0
KSB7CiAgICAgICAgICAgICAvLyAzLjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMg
aXMgbm90IGEgSlNPTiBMaXN0LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQg
YXJndW1lbnQuCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZp
cnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2Fw
YWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAg
IH0KQEAgLTc0OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgYXV0byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENh
cGFiaWxpdGllc0xpc3QtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBT
dHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxp
dGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgfQogICAgICAgICAvLyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJl
IHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3Vt
ZW50IGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxp
dGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAg
ICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdl
YkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBw
CiAgICAgfQogCiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNo
IGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3Ry
aW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZv
CiAgICAgLy8gwqc4LjEgTmV3IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RS
L3dlYmRyaXZlci8jbmV3LXNlc3Npb24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUg
c2Vzc2lvbnMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygi
TWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdT
ZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZv
aWQgV2ViRHJpdmVyU2VydmljZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVz
PiYmIGNhcGFiaWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8g
bWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVk
LCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
YXVzZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6
Om9wCiAKICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7
CiAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBp
bnZhbGlkIGluIHBhdXNlIGFjdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc051bGxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAg
YXV0byBzdWJ0eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChz
dWJ0eXBlICE9ICJwYXVzZSIpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBu
dWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYgYWMKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0
aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0
aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwg
SlNPTjo6T2JqZWN0JiBhYwogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAg
ICAgICAgIGF1dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAg
ICAgICAgIGlmICgha2V5VmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlv
biIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2
YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlW
YWx1ZS0+YXNTdHJpbmcoKTsKICAgICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFs
aWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgLy8gRklYTUU6IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0x
OTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNP
Tjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1
cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAg
ICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAg
ICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAgICAgICAgIGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcg
KzIwMDQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmln
aW5PYmplY3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBl
bGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRl
bnRpZmllcigpKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBh
IHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFs
aWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBv
aW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsK
QEAgLTIwMTUsNyArMjAxNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlv
bihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAg
ICBlbHNlIGlmIChvcmlnaW4gPT0gInBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5v
cmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3Rk
OjpudWxsb3B0IH07CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rp
b24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcg
QEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJ4Il9zKSkgewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5S
YW5nZSgqeFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsy
MDM0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBh
Y3Rpb25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVt
YmVySW5SYW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1
OCw3ICsyMDU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0
eXBlID09ICJwb2ludGVyQ2FuY2VsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckNhbmNlbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9p
bnRlclBhcmFtCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAg
ICAgIGF1dG8gYnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwog
ICAgICAgICBpZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9k
b3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBh
dXRvIGJ1dHRvbiA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFi
dXR0b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRl
ciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMg
aW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rp
b25Nb3VzZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAg
ICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2Ug
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9m
IHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVs
dGFYID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAg
ICAgICAgIGlmICghZGVsdGFYKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAg
ICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFY
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVs
dGFYLnZhbHVlKCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
Y3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
CiAgICAgICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVs
dGFZIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5n
ZSgqZGVsdGFZVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAg
ICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRh
WScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyAr
MjE2NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNz
UG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNE
YXRhID0gcGFyYW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRl
cnNEYXRhKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNl
IHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3Qg
YW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTIxNzksNyArMjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJz
PiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAo
cG9pbnRlclR5cGUgPT0gInRvdWNoIikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9
IFBvaW50ZXJUeXBlOjpUb3VjaDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBv
aW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogewogICAgIGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2Jq
ZWN0KCk7CiAgICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9i
amVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1
LDEzICsyMjA1LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9j
ZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlw
ZSA9PSAibm9uZSIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBl
OjpOb25lOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2Ui
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBp
cyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2Ut
PmdldFN0cmluZygiaWQiX3MpOwogICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFj
dGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcs
MTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFj
dGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0g
c2Vzc2lvbi5nZXRPckNyZWF0ZUlucHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50
ZXJUeXBlKTsKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vz
bid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlw
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlu
cHV0U291cmNlLnR5cGUgPT0gIElucHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291
cmNlLnBvaW50ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0
IHNvdXJjZSBwb2ludGVyIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJB
Y3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBv
aW50ZXIgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAg
ICAgYXV0byBhY3Rpb25JdGVtcyA9IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJf
cyk7CiAgICAgaWYgKCFhY3Rpb25JdGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4g
YWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2Vx
dWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0
Nyw3ICsyMjQ3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nl
c3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlv
bkl0ZW0gPSBhY3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFj
dGlvbkl0ZW0pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFu
IG9iamVjdCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9
CiAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFj
dGlvbnMoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBh
dXRvIGFjdGlvbnNBcnJheSA9IHBhcmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAg
ICBpZiAoIWFjdGlvbnNBcnJheSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQi
KSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZl
clNlcnZpY2VHdGsuY3BwIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0
ay5jcHAKaW5kZXggYTA5ZDA5NDFiYTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5
N2ZmMGZhMjkxMWFmMTkxYjkzNjcwMTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRy
aXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJp
bGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7
CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAg
IGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0
aWVzOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZv
aWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09O
OjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVz
KSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVY
RUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlC
cm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhF
Q0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJy
b3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0
cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlT
Y3JvbGxiYXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2Vi
RHJpdmVyU2VydmljZVdpbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2
aWNlV2luLmNwcAppbmRleCA5MzY3MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJm
Li5hYjIxNjcxY2NhZGEyNWU3MzcxZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2
b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBj
YXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2lu
Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAg
ICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxp
dGllczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZp
Y2VXUEUuY3BwIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAK
aW5kZXggNjU2YTY3NmFiMmNhMTJhMDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2Ni
NTI3ZmRlZjdlM2UyZDc0MDVhNWU2ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93
cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
OwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsK
IH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0
Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdl
YkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2Jq
ZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29u
c3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dz
ZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dz
ZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmlu
Zz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0
Y2hlZENhcGFiaWxpdGllcy5nZXRPYmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGU0ZDU2YzBi
ZTQ5MmE5YmUyMWM4YWU2OWI3MTQzZmYwMWMzNGZkZC4uNzU5NzA3MWJjZWIxNDk0NjZiNjRlMWZk
ZTU4ZGE2YWE5MTBlYzkyZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0
cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lz
dGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxk
ZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5j
cHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hh
bGxlbmdlLm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jh
c2gubW06CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2Ny
aXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgU3RyaW5n
KGNvbnN0IGNoYXIqKSB3aXRoIFN0cmluZzo6ZnJvbUxhdGluMSgpIGluIG1vcmUgcGxhY2VzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGll
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5j
cHAKaW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4
MWFmMWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFz
T25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBA
IC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcp
CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05V
TEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIg
fTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5h
bDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3Zl
KG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwg
MnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJW
U3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
T3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVD
VF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShj
b3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RG
TW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBA
QCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1Jl
ZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7
ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5n
IH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBF
Q1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0
ZmYyNTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4
NmE0Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lz
dGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1h
cHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6
TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIp
LCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGlu
Z19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7
CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxl
RGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhO
dW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApp
bmRleCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0
Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4
TnVtYmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwg
TG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBh
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUlu
dGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIp
LCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRl
eCBlNzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2
MTdkNDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3Rl
cnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVy
IHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVy
LmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0
ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRl
cjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFi
Y2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAg
ICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhw
ZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0
ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZCgiYWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNl
eWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1
Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAx
KSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hl
cmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBh
bmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
YnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCks
IGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
IiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
Il9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCht
YWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVy
dCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUg
Zml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1
aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiks
ICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9z
KSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtl
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRl
cik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0
cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdl
ZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAg
Ly8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3Qg
YWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBz
dHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50
b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIu
c2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVy
LmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBF
WFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5j
aGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcg
dGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBv
ZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3Qg
Y2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsy
NDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAg
RVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShz
dHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUg
Y29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2Fw
YWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEu
YXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNp
emluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVz
dWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRl
ci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwg
c3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1
ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIu
YXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVD
VF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4
VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWls
ZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsK
ICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVt
cHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0
PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7
CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVF
KGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9
IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1
aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsK
ICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEy
MyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1
NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMi
KSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMi
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRv
U3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWls
ZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAg
IGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5z
aG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRk
Zi4uYmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0
IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVt
cHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsK
LSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0
IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIp
KTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dp
dGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRf
VFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIi
KSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQz
MzQ5Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0
OGI0NGI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09w
ZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3Ry
aW5nIik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0
b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJ
SUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdW
aWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07
CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAg
IEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2Rl
ZjVjNzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAt
NDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkK
IHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0g
U3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhl
bGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAg
ICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsK
QEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBl
bHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0
ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMo
U3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMu
aXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgp
KTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQog
ICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgp
LmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlv
bnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAg
U3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3Ry
aW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3
LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0
ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBj
b2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBv
aW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0
cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3Ry
aW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3
ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05
ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWls
aW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkK
IHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJ
SSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxB
U0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNB
bGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIp
KS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxs
byJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmco
IkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhT
dHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBV
Q2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjlj
OGJjZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihX
VEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlz
VmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1
ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgp
LnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyks
IGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkp
OwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIv
aW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXgu
aHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFt
ZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyks
IGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3Mp
LCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1
cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJf
cyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50
aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVu
dElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJs
LmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlM
aXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRl
VVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2Nv
bEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5h
bWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9
dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
Oi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6
Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8v
L2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29y
ZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRF
U1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBA
QCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVS
TCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIs
ICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAg
ICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
Il9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7
IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwx
MyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwy
Il9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFs
MiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0
ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9
LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwog
ICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZh
bDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0
b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIs
ICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
NzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIi
X3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsK
ICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEi
LCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwy
In0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywg
InZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3Mg
fSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVS
TCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBV
UkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3Qi
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRl
c3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5
UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJM
IHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAg
ICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7
eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVz
dCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywg
dXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVz
dCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJs
MjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5
MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzAp
OwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Pz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7
CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Pz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYp
OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3Iu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZh
OWU0MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3
YjhjZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Zl
Y3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1v
dmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsg
InYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsK
LSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAu
c2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBt
YXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFw
LCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAg
ICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRj
NWIxYS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMg
QEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0
cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZp
YUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBz
eW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJF
eHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3Mp
LCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0
ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmlu
ZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEo
IlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0
cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcg
TGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3Ry
aW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJp
bmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0
eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJp
bmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJz
KCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwog
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3Ry
aW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChl
bXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJ
bnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFt
ID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhl
eHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmlu
Zzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBT
dHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwg
U3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91
YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShv
ayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3Mp
LnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNl
ZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUo
b2spOwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9y
ICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQs
IHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdz
IGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykp
OwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5v
dCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
aW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5m
aW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAv
LyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0g
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
Im5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVT
VChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDAp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJU
ZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
VGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQo
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
IlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhT
dGFydGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcyku
aGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmco
IlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9G
QUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEz
IEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZy
b21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4
reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwog
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdB
dCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYs
IFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0
ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBF
WFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEu
aW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMs
NyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0
cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIp
OworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcx
LmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hh
ciBhYltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0
MzBiN2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5
ZTZkM2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0
YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307
Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVu
c2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0
UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygi
XFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgw
Ny4uOWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5
ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBh
IHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNv
bWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
U2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0
Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3Mp
OworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFu
Z2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29u
ZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7
CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFk
ZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlm
My4uNzIzZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAK
QEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAg
ImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJh
XCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAg
ICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0
cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9t
TGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25B
U0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9u
QVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZh
bGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAg
ICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBc
ImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNo
b3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tl
eWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1
MDUxLi41NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1
MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1Qo
S2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2lt
cGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6
S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBF
Q1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3Ry
aW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0
Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXgu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAK
aW5kZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQw
ZTMxZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMw
IEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAg
ICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4Lmpw
IikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5c
dTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
by51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYw
YW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82
NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHci
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20i
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0
LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVY
UEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VR
KHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlv
bmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIu
ZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
Zygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhv
c3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
Ojpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XD
pMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3Qu
Y29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4Zjhi
ODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAz
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxp
Z2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkr
KykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8v
d3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMs
IHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3Bl
ID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7
IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEo
c2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRv
cGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0
byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmlu
ZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4
MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhp
c3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0
aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NF
UlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAg
YXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1w
RmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RS
VUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0
ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZm
ZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5k
YXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0
aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVm
ZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRF
U1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlz
dGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUw
ZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2Zi
YzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBU
RVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBj
aGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0
ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0
ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYl
OTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRl
eHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2Rp
bmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdp
dGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBl
bXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnki
X3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VS
TCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJp
bmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5
U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBU
RVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVj
a1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJp
bmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgi
aHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBp
c284ODU5MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNv
ODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmlu
Zzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmlu
Zygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMl
OUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMl
RDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3Bh
dGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkx
Il9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJf
c30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIw
NWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1
NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBU
RVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwg
d2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBP
cmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFi
YXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3Rl
bTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsK
QEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hl
bkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNl
IG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVk
IGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQz
KTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2lu
V2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91
bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9y
CiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBh
bmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAg
IE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlE
aXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFj
a2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJh
c2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBA
IFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRh
YmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUg
ZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUg
Z29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhl
IGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlz
dCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGlu
Zm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2Ex
NTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJ
ZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3Rx
Mjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJO
a2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5
ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgot
ICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8v
TmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRp
ZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJB
UXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNl
Y0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJa
SEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQ
YUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pD
aSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallr
T2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOwor
ICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0
ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRv
IGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZl
bnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEz
ZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2Fi
bGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkK
ICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0
YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRh
dGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5
ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNv
dXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVf
dG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxl
X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChr
ZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgn
IicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJs
ZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQog
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0
cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rv
a2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRv
a2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3Mp
IDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5k
KGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0g
a2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyAr
MzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tl
bihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2Vu
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRh
dGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0
U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZm
NTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMg
QEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21D
T09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVt
IGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2
b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3Qg
Y2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFy
KiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lk
ZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitz
dGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09Q
LCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwg
QVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhw
ZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5h
ZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1Ap
Ci0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJf
cywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09F
UCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xp
Y3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJD
cm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhl
YWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0
aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRl
c3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0
aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0
aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhk
ZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVz
cG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJw
b3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2Nv
bDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UK
IAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNz
UG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9
IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3Vy
Y2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wg
ZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1Ag
JiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9u
Q09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJv
b2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2Ft
ZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wg
ZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1Ag
PT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9z
OwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBk
ZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4
cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3
NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIq
IHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7
IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
bkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09P
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4z
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9u
IGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQ
LgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8g
V2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1z
YW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAg
ICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUg
Q09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0s
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJs
ZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4
NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZh
NTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsy
MTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25u
ZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVl
c3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRU
UFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5z
ZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9u
c2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNl
cmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBS
ZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2
YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9
XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7
ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVu
dFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4m
JiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVF
KHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNv
dXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlh
bGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4
NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUy
NTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVG
cmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1
YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxp
ZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9z
Oworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5
cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNv
bnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsK
IAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2
ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4
Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29u
dGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3
ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21Q
YXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRl
U3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8i
X3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29w
eUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkx
NWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUz
YjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dl
YlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
V2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAo
RE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJh
Il07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRl
eHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
Q3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2
MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBA
QCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdl
YlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNz
YWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
UEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5
YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYz
MDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRU
UFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0K
QEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9Owog
CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAg
ICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24i
LCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2Vi
U29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywg
IndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUi
X3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRB
Y2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6
OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsK
ICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZl
cjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5
SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRm
bW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAi
RzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082
SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpa
RDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0
aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVy
biBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rv
cjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThk
SjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAg
ICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdO
bXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kz
SjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBI
TGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsK
IAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFBy
aXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYg
LS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRi
L2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYw
ZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJi
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBi
L1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBA
IGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92
aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFO
dWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0
cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3Ry
aW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmlu
Z0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcg
eyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJp
dFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmco
dSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485566"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457086</attachid>
            <date>2022-04-08 09:35:33 -0700</date>
            <delta_ts>2022-04-08 09:48:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408093532.patch</filename>
            <type>text/plain</type>
            <size>159107</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIw
OTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQog
CiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0g
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29u
ZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5k
aWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTgu
LmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNl
R3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdw
b2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2
YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpP
YmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAg
ICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdk
NzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9
PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZh
Y3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQo
ZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3Ry
aW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwg
R1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRh
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZh
Y3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNv
bXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVu
dHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdh
cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZl
ZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUg
PSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlk
KCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkp
OwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9l
cnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBH
U1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdl
LCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMo
ZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9G
T1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYg
KGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBo
ZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChj
b25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJp
IikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAg
ICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIo
R3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVt
cGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVC
VUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0
ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25s
b2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAg
ICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhY
WFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2gu
IFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAg
IC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwg
YmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsK
LSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9
KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEo
bmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJs
U3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJp
IiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJp
blVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxh
eWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAg
ICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24u
Iik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgp
CiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBz
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJ
QV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFs
dWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0
RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVj
dGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAm
ZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAg
ICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1J
ZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChH
U1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5
LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJv
dGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwog
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlE
LCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRp
YWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2Rh
ZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5
NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdz
dFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwog
ICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsK
LSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lz
b182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNr
ICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0
YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1
ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBT
CiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlz
dF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAg
ICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFn
VmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQo
KSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFn
VmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFm
Zjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3
ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50
KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0
UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFk
UHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1
cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAg
ICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0g
ICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90
aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5w
cm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCks
IEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7
CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJl
dHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRh
KSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0
KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChl
bGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1l
c3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFk
ZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTll
NTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19j
YXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUx
MWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMg
Ym9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVy
OiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291
cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJE
YXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1l
IH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxh
dGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0
LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdl
YlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMt
PnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1Rf
REVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0
ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2
NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0g
ICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAg
VVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0
V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAg
ICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkp
KTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29k
aW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11
dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJh
bmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIs
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcg
eyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJh
bmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0g
bWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3Qg
Z2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBV
UkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVy
biBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6
OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNy
Y0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAK
aW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0
NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlU
aHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5
U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAg
ICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGll
czo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9O
RSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0
aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlT
eXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9y
dGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJp
bmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3Rl
bXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7Cisg
ICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdT
VF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMu
c2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3Ry
ZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1
NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNl
OTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5o
CkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+
KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7
CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJs
ZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dl
ZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYg
ZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1
ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBl
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdS
ZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFw
cGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVk
aWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIg
PSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
OjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkp
IHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxh
dGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1U
eXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1Bh
ZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRp
b25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZh
bHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1l
ZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2
MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0
cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAt
NzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJh
Y3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9u
KGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7
Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2Rl
Y05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8g
UmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIg
anVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAg
ICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBi
NjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0
NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXpl
X3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6
ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEw
ME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0s
VDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVS
X1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVu
digiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAg
ICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZm
MGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWlu
dCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAg
ICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0
NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxz
ZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewot
ICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBt
X3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
Pig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
UkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92
ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5k
b3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVk
YWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3Bl
bkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVy
biBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9F
WFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZh
NWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29u
dGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0
cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250
ZXh0QXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJi
NzM5N2ExOTMzMTE2NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2
OWVkN2U3Nzk3YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRy
aWJ1dGVzLmNwcApAQCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMmIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0Uo
T1BFTkdMX0VTKQogICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwog
Ci0gICAgICAgIFN0cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5z
aW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1
cHBvcnRzTlBPVFRleHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3Rl
eHR1cmVfbnBvdCIpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2Ug
PSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1
ZDNkMmUyZWY5YmU5NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZh
MWQ3OTNkOThjMTEwZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3Bw
CkBAIC0zNCw3ICszNCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVy
RlBTQ291bnRlcigpCiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQog
ewotICAgIFN0cmluZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQ
UyIpIH07CisgICAgYXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
Z2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1f
ZnBzSW50ZXJ2YWwgPSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsK
ICAgICBpZiAob2sgJiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQz
MDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4
NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkK
IAogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAg
ICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2Vf
Y2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZp
Y2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQoKSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgi
QXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFjOGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcy
ZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRkNjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0
cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMK
ICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0
cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWduYWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBT
dHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0
aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmplY3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Np
b25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFjZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJl
cGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sg
dGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0
MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUw
ZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJ
RGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGlj
eSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVy
bEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAg
ICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9i
YWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAg
ICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsK
ICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3Rn
TWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwo
SURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAg
ICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9i
YWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3Rz
QShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVS
TDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRo
KCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRo
KFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAg
ICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAg
ICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2Jq
ZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdl
dERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRl
eHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0
b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4
dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3Jl
LmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNl
IHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdE
YXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1l
bnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwg
aWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJp
bmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVu
c2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3Ry
KTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJi
YmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAt
ODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0
JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlw
Ym9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIp
KSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RF
WFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMg
YXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRo
ZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRp
Y19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRl
eHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JE
YXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6
OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcg
QEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQo
RnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6
OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAg
ICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExv
Y2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAg
ICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNs
aXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0
KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
U1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xL
ZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2Ji
NzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3Bw
CkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVk
S2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hv
dWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5h
cHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hh
bGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29u
c3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIv
U291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2
NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4
N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAg
IHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAg
Y2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25l
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRT
dHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6
OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjlj
N2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4
YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAK
KysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEs
NyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNp
ZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsK
ICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFS
R0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFy
IH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZW
YXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAg
ICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdl
YkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAg
ICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0
cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9
Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkg
JiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
ZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3Ro
ID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9
IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmco
YXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJn
dlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICgh
c3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmlu
Zy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRh
cmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6
OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMs
CiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Np
b24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJz
ZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJp
dmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAg
ICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQg
dGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFi
aWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVp
cmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBp
cyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWly
ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFi
aWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJl
ZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRp
ZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdh
eXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmly
c3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFz
QXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAg
ICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBh
IEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50
LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNo
IGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGll
cyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03
NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpw
cm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAg
ICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFi
aWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJ
bnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91
bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAg
IH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVz
dWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJz
dCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2
YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBp
ZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RN
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAg
ICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJT
ZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0K
IAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Np
b24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8v
IMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2
ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vz
c2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25z
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0g
bnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihS
ZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBh
YmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5n
KCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rp
b24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAg
ICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlm
ICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBp
biBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0x
OTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxs
QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3Vi
dHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAh
PSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rp
b24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFj
dGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFj
CiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5
cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
dHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBh
dXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBp
ZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlz
IG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFz
U3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBr
ZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAg
IC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsx
OTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZh
bHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8g
ZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFk
dXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAg
ICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcg
QEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0
ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElE
ID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIo
KSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3
ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBl
bGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3Jp
Z2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1
LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6
T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBp
ZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0g
UG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9w
dCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7Cisg
ICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmln
aW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRp
YyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0s
IEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhW
YWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMg
aW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRl
bS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFu
Z2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
eScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1
OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24o
Y29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAi
cG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBv
aW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
Y3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJh
bQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRv
IGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAg
aWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rp
b24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
YnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0
b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQg
Zm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VC
dXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNP
Tjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFj
dGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBh
Y3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZh
bHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBp
ZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1
ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBw
cm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAg
ICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykp
IHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRh
WVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGlu
dmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQ
YXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBh
cmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVy
IHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVj
dCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcg
KzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vz
c1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJU
eXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVy
VHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBh
cmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFj
dGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAg
ICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwog
ICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIw
NSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0
QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5v
bmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsK
ICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxp
ZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJp
bmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2Vx
dWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdp
ZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1
ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24u
Z2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7
CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRj
aCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFj
dGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2lu
dGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2Ug
cG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNl
cXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5
cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8g
YWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAg
IGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBz
ZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0
Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0g
YWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVt
KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rp
b24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3Qi
X3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0y
Mjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rp
b25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFh
Y3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNl
R3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmlu
ZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5
MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3Rr
L1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmls
aXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0K
QEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hD
YXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0
JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QK
IHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIv
d2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIp
OworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93
ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9z
KTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsg
Ii0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFy
cyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNl
cnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5j
cHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3
MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZl
ci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0
aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAg
IGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJp
bGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNw
cCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1
NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3
ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3Bl
L1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRy
aXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBj
YXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxp
dGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMu
c2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7Cisg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsK
ICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0t
YXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBh
YmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlNGQ1NmMwYmU0OTJhOWJl
MjFjOGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcwNzFiY2ViMTQ5NDY2YjY0ZTFmZGU1OGRhNmFh
OTEwZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZy
b21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5t
bToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVS
TC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgor
ICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0
UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5l
Y3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQ
U2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNl
cnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBkZXByZWNhdGVkIFN0cmluZyhjb25zdCBj
aGFyKikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEoKSBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4
IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0
YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29w
eUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmlu
ZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5
KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigp
KTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyAr
NDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBF
Q1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdp
bmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJp
bmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAg
U3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3Jp
Z2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5h
bCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAg
LTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hh
dmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFs
U3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9
OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShv
cmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1w
bCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3Jp
Z2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAg
ICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0g
ICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJf
cyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAg
IGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9y
aWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1
ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEy
Miw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlz
c2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZp
bGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6
TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJf
cyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVY
UEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2
ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBi
ZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2Fz
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1
ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4
ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBl
bmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdo
IiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
IycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBi
dWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRD
aGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWls
ZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVu
ZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZ
WiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxk
ZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3Ry
aW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5n
LmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFk
aWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFi
Y2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
IiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7
CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
IiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMi
KSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVw
Y29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0
IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNk
IiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIu
aXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVy
Lmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIs
IGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJC
IiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0
cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0
aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4
Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxl
bmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1
bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwg
YnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAg
IH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEy
MzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1w
bCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2lu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAg
YnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0
aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmco
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCku
CiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygx
MCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
X3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVp
bGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0
eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VR
KHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgp
KTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQu
CiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9z
KSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQg
b2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7
CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
OwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgi
REVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNp
dHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEp
OwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1
IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgi
MDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBV
LCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxk
ZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAK
ICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQ
RUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWls
ZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVx
dWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+
KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVY
UEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmco
ImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5y
ZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVp
bGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBi
dWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVp
bGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVy
LmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0
b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hy
aW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMx
NjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNU
KFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAog
VEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9z
KTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
dGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAg
ICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5n
KCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3
NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMu
Y3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
KFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOwor
ICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5n
KCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFs
Il9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsK
KyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0
cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1Rf
RVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2Jm
NzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1
LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAg
U3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1Zp
ZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOwor
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1Zp
ZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVD
VF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3
ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAg
ICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJp
bmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygi
aGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgp
KTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAg
LTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5p
dHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBo
ZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcg
aGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9p
bnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMp
CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50
c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVy
YXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Vi
a2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXco
d2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29k
ZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5
ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNo
ZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUko
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxB
U0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5p
c0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJf
cykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpm
cm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Z1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1
IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41
NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkp
OwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmlu
ZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhv
c3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBF
WFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3
b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0
bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwg
a3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFs
IiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBr
dXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBh
c3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5w
YXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJs
LnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlm
aWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVu
dElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1
cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJ
SUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5k
UG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3
b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRw
Oi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXgu
aHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9j
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6
Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RG
X1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9G
KFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9
IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEy
IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVy
bDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBA
IC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJs
NCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAg
ICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsg
eyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3Rv
cjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVy
bDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwg
dXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9
dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7
CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsi
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsi
a2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAg
ICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFs
MiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7Imtl
eTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9z
IH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIy
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3si
Lz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0s
IHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVy
bDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0i
fSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwg
dGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/
IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVz
dFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAi
Il9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAK
ICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7
CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMy
IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAog
ICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7
CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUy
NiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3
M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBj
Y2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVT
VChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7
Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEi
X3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgi
azMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICBy
ZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjVi
MjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1Qo
V1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4
cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5s
ZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxp
dGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQg
Y29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAi
U3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJh
bCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcg
TGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9t
TGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwi
KSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRl
cmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkp
CkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwp
CiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RG
OjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8i
KTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVY
UEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwog
ICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJp
bmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQog
ICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBl
Y3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRT
dHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21M
YXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVw
bGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1Rv
RG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
VFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAg
ICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJs
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGlu
ZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAog
ICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBh
bHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdv
aW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
eCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJs
ZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lh
bCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJp
bmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ug
b25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
Im5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBT
dHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0
IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5p
czhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdB
dCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9z
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJp
bmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNU
KFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi
5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9G
QUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9z
LCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdF
eGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsK
KyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZB
TFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+
aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmlj
b2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBT
dHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwo
KSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9
IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRi
NzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4
MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRF
eHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7
YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRl
c3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5T
dGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0
YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNl
U3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxc
biJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3Iu
Y3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVk
OTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
ICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5n
ZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJl
dmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0
IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2Vk
RGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFz
cyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxk
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1
ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5
ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwi
Il9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAo
KGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0
cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBu
b25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShu
b25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90
ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVv
dGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBA
IC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJh
OiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIp
fSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmlu
Zzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNv
bWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGlu
Zy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZh
NTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUw
LDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29k
aW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVl
KCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVj
b2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUo
dGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldl
YkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsK
IH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3
ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2Uy
OGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNU
X0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVD
VF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2
NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Y29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51
ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82
NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYw
YW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0
LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0
cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFp
bikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5F
eGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxI
b3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TD
liIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIu
dGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9j
YWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxh
dGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Li4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRl
NWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
CkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAg
ICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJr
aXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2Yo
dG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmlu
ZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9
OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsK
KyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAK
ICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1
bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0
NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFl
YjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3Jl
YXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2Zp
bGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50
c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwo
YnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1
ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRo
KCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZl
ci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEo
KSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6
dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0
eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJM
UGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2
NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4
ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwo
dXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAi
JUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9
LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rp
bmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGlu
MSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3Bh
Y2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJp
bmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVj
a1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0
dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEo
U3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJ
U08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4
REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8v
aG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIw
JUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQx
JTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdp
dGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1w
dHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2
OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFi
YXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3Vs
ZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwog
ICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9t
IGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMs
NyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFz
ZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNr
LgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRo
ZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNy
ZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0x
NzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxl
dGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJl
bW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8v
IE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMp
OwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5X
aXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24g
c2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQog
ICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmlu
ZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5
KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0
YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChk
YXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0
dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERh
dGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24g
ZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQK
ICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJv
bSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVE
YXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdo
ZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlz
ay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlv
biBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJk
YzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBA
IC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHky
KCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9a
ZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0Vmxn
Q0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZN
NzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdP
eS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdw
SVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgi
IgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0Jn
VEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0
eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1P
VWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2
WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAg
IkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElq
bjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkv
aEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRl
cyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZp
Y2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmli
dXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4u
NmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5B
bmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAg
ICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBP
U1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJl
cXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5s
aW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJf
cykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFy
dCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFu
ZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBT
dHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9r
ZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBl
bmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBA
IHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5T
aWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9w
dE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVu
Z3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6
IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5m
aW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
Kz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5
ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAog
ZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBE
b1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGlu
YXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVj
dCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZv
aWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlM
aXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0
ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVy
U2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXAp
CiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250
ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAg
ICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmlu
Zyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBT
dHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFk
ZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25D
T09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlv
bkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25D
T09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRp
b25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1F
bWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRl
c3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3Mp
OwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFp
cjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBz
KTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgp
XSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VD
T09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAm
JiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJj
bXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYg
IXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJj
ZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2lu
Il9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1l
LW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBF
WFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRp
b25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2Fw
OjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEg
QEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VD
T09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNz
aW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAg
Ly8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVj
dCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmln
aW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdl
IGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2Ft
ZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0
Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZl
LW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2Vi
VmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1
NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcw
MWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBj
b25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShW
ZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25z
ZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXpl
KCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUo
KSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChb
PV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5k
KEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVu
dC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlz
dFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJl
cXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3Ry
KChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBs
YXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2Jl
ZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3
NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgz
LDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1j
b25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNy
Yz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtd
ID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlk
PSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRp
YyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0
JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFy
IHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChv
cHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRp
YyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkz
MGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0
NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51
Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
Q29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5n
ZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2Fy
ZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10p
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3Ry
aW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdl
YlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVm
NTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3
YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2Fu
UGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdD
YW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxB
bmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAg
IE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5
NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9p
ZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9V
Ukw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1
bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0
aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
UEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3Mp
LCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRh
ZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNk
MmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00Njcs
OSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBn
cmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3Jh
ZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFj
Y2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2Nr
ZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisg
ICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFs
dWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRl
Q29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7
CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RD
ZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlm
enA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempx
d1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJX
OHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUi
Ci0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3
bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92
ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhf
dD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0ty
MGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQ
Y1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRB
aDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2
bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9
PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBh
dXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5
KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1
MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9s
bGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNs
YXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkK
IHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmlu
ZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1w
bCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVt
cHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0g
YW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1
bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lz
dW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcu
aW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgw
Q2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457087</attachid>
            <date>2022-04-08 09:48:53 -0700</date>
            <delta_ts>2022-04-08 09:59:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408094852.patch</filename>
            <type>text/plain</type>
            <size>159968</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNh
NWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWExZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQsNyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFy
Z2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsK
ICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRGcmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJl
YXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJf
Q09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7CisgICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3Ry
aW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czogIiwgcmVhc29uKTsKICAgICAgICAg
cHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYu
LjMyNDIwOTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2
b2lkIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNh
cHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxj
aGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgp
KSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07Cisg
ICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7
CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1Mjlj
OTViOTguLmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFu
IHBhcnNlR3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFs
dWUsIGdwb2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRv
SlNPTih2YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxK
U09OOjpPYmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5n
IHsgZ19xdWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVs
bCgpKTsKKyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFy
a190b19zdHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAg
IH0KICAgICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3
NS4uNjdkNzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBH
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3Np
ZmllciA9PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xp
c3QqIGZhY3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0
X25leHQoZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJw
cmV0X2Nhc3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAg
ICAgU3RyaW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFj
dG9yeSwgR1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1l
dGFkYXRhID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFk
YXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBh
dXRvIGNvbXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNv
bXBvbmVudHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5n
SGFyZHdhcmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3
Li4wMWZlZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNv
bnN0IENvbnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVBy
aXZhdGUgPSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3Ry
ZWFtLmlkKCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0u
aWQoKSkpOwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7
CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9w
YXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAg
ICAgICBHU1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5t
ZXNzYWdlLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9y
TWVzc2FnZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IFN0cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0g
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21h
dGNoZXMoZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVD
X05PVF9GT1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVs
c2UgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikp
IHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3Npbmcg
SFRUUCBoZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAg
IGlmIChjb25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAidXJpIikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsK
KyAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAg
ICAgICAgICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7
CiAKICAgICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRC
dWZmZXIoR3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRl
bXAtdGVtcGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBH
U1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0
ZW1wbGF0ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5l
d0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4
UGF0aCB7IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2Fk
UHJlZml4UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgp
KTsKICAgICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxh
Y2UoIlhYWFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0
aG91Z2guIFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAg
ICAgICAgIC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAg
ICBVUkwgYmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBt
X3VybDsKLSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2Nh
dGlvbiB9KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21M
YXRpbjEobmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5
YmluVXJsU3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJl
bnQtdXJpIiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwg
cGxheWJpblVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBV
UkwgcGxheWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9
OwogCiAgICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJl
Y3Rpb24uIik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNh
YmxlZCgpCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6
OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAg
YXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJM
RV9NRURJQV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2Vy
Y2FzZVdpdGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIg
fHwgdmFsdWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBA
QCBJbml0RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9t
UHJvdGVjdGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0g
bnVsbHB0cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50Lmdl
dCgpLCAmZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBp
bml0RGF0YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7Cisg
ICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlT
eXN0ZW1JZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRz
LmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBA
IC00MDM5LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFu
ZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVu
dEtleVN5c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxs
cHRyOwogICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0
ZW1VVUlELCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291
bnRlcmVkKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAg
IGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50
S2V5U3lzdGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0
NTlhY2RhZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Ry
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1
LDcgKzE5NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VD
b2RlKEdzdFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1
YWdlOwogICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFn
ZSkpIHsKLSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9j
b2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFn
ZSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182Mzlf
MShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVk
IHRyYWNrICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4
KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAg
ICB2YWx1ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdO
YW1lLCBTCiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90
YWdfbGlzdF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsK
ICAgICAgICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFt
ZSwgdGFnVmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1
ZS5nZXQoKSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRp
bjEodGFnVmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFt
ZXIuY3BwCmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMw
NWU1MWFmZjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAg
dm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBl
bGVtZW50KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwg
W10oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4g
R3N0UGFkUHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0g
PSBlbnN1cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZv
KSk7CiAgICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZm
ZXI7Ci0gICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGls
X2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5w
cml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9j
YXN0PGNoYXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0
YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJP
QkVfT0s7CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAK
QEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JF
bGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAg
ICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFt
ZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVs
ZW1lbnROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVz
ZXJEYXRhKSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuZ2V0KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVz
LnNldChlbGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dl
dF90aW1lc3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEy
MGNhOGFkZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNj
ZmI1OTllNTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVH
U3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tf
VkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191
dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9u
LmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVj
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9u
TWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhl
My4uZDUxMWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBz
dGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29u
c3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEg
aGVhZGVyOiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAg
IFJlc291cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+
KHVzZXJEYXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmll
bGROYW1lIH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5z
ZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6
ZnJvbUxhdGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtNjQ0LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdl
YktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1l
bWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAg
ICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyBy
ZXF1ZXN0ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdf
R1VJTlQ2NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJ
LmRhdGEoKSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlv
bik7Ci0gICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07
CisgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRh
KCkpIH07CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Qu
c2V0QWxsb3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdl
YktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8
V2ViS2l0V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIp
OwogCiAgICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0
SFRUUE1ldGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2Qu
Z2V0KCkpKTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0
LUVuY29kaW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBA
QCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywg
RGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3Jt
YXRlZFJhbmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1B
VCAiLSIsIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAg
ICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBT
dHJpbmcgeyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3Jt
YXRlZFJhbmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRp
b24gPT0gbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAg
Y29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0
YXRpYyBVUkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAg
IHJldHVybiBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBT
dHJpbmc6OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktp
dFdlYlNyY0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRl
ci5jcHAKaW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1
MzlhODc0NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRo
dW5kZXIuY3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZh
Y3RvcnlUaHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9y
dGVkS2V5U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJp
bmc7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0
aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJS
T1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0
ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0
aWVzOjpzX1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVf
c3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1w
dHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtl
eVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3Rl
bSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21M
YXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAg
ICAgIEdTVF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5
c3RlbXMuc2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMw
YzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVl
ZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxp
dGllcy5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiog
c3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKio+KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1Zh
bHVlKSk7CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lz
dGVtc1tpXTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQo
c3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2
YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZl
Y3RvciYgZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9B
cHBlbmRQaXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMx
ZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1
cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNp
emU+IEFwcGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBj
YXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNj
YW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlm
ICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5
cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6
ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBT
dHJlYW1UeXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhl
clNyY1BhZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVz
ZW50YXRpb25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENh
cHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJl
YW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1
ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNw
cApAQCAtNzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246
OmV4dHJhY3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2Ny
aXB0aW9uKGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdl
dCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0
byBjb2RlY05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAg
ICAgLy8gUmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9m
aWxlKSIganVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlh
bnRzCiAgICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCBiNjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4
ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBA
QCBzaXplX3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVm
ZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpF
PScqOjEwME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRl
bzo5ME0sVDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhf
QlVGRkVSX1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6
OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHko
KSkgewogICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsK
ICAgICAgICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2Zk
YWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVu
c2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBH
Q0dMdWludCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygp
CiB7CiAgICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJ
T05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMu
LjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6
ZShmYWxzZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5n
KQogewotICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsK
KyAgICBtX3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJp
bmcoR0xfUkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRz
ID0gbV92ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlm
ICh2ZW5kb3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMRVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRi
ZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9u
c0dMT3BlbkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1l
KQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAg
IHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmlu
ZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44
ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFt
YWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0
dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5h
bWUpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJDb250ZXh0QXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0
MGFhYzJiNzM5N2ExOTMzMTE2NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2
YTM0YWU2OWVkN2U3Nzk3YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRl
eHRBdHRyaWJ1dGVzLmNwcApAQCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29u
dGV4dEF0dHJpYnV0ZXMmIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNp
ZiBVU0UoT1BFTkdMX0VTKQogICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0
cnVlOwogCi0gICAgICAgIFN0cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8g
ZXh0ZW5zaW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1
dGVzLnN1cHBvcnRzTlBPVFRleHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xf
T0VTX3RleHR1cmVfbnBvdCIpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3Vi
aW1hZ2UgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdl
Iik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdh
MWMyNzI1ZDNkMmUyZWY5YmU5NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFk
MmQ2ZjZhMWQ3OTNkOThjMTEwZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50
ZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJl
TWFwcGVyRlBTQ291bnRlcigpCiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3Vu
dCgwKQogewotICAgIFN0cmluZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9T
SE9XX0ZQUyIpIH07CisgICAgYXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21M
YXRpbjEoZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwog
ICAgIG1fZnBzSW50ZXJ2YWwgPSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgm
b2spKTsKICAgICBpZiAob2sgJiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggMjU3NjZkOTc1
ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTk1NzM5NTUyMzExYmQzZDFiZDQwMTJh
ZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBHU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRl
dmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSA9IGRldmljZVR5cGUo
KTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihnc3RfZGV2aWNlX2dldF9k
ZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRldmljZUNsYXNzKFN0cmlu
ZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmljZUNsYXNzID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQoKSk7CiAgICAgaWYgKHR5cGUgPT0gQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRz
V2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0eXBlID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlk
ZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlD
YXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFjOGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2
YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRkNjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0
dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihvKSIsICZvYmplY3RQYXRo
Lm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWduYWwob2JqZWN0UGF0aC5nZXQoKSk7CiAK
LSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0aC5nZXQoKSk7CisgICAgYXV0byByZXF1
ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmplY3RQYXRoLmdldCgpKTsKICAgICBhdXRv
IHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFjZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9u
LyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7CiAKICAgICAvLyBGSVhNRTogTWF5YmUg
Y2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJs
LmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcx
NzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1
cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86
Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNh
dGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5
X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92
ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENl
cnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6
ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1
OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5j
cHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0
IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkK
IHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUp
KTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYg
aG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFk
ZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhl
YWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVt
b3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQog
ICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiAr
IFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1
NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4
NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdl
dFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lv
blBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXRE
YXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkK
ICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3Jl
LmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxl
KTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRp
dGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxl
YXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBn
ZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNp
b25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAg
ICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3Jl
LmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxl
RXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0
ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0
ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAg
ICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsK
ICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElE
YXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmpl
Y3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFT
Q0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxM
b2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAg
ICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2Nr
KHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAg
fSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0
IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwo
RG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJh
c2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAg
ICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwog
ICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3Jj
VVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2Zi
ZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMz
YTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxh
aW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6
SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1f
b3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRh
KENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJh
Y3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0
aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7
IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0
ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExv
Y2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAg
ICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyAr
ODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJh
Z21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRh
dGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRh
KSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEds
b2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOwor
ICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAg
ICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpD
bG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZy
b21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4
MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3Vw
cG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmlu
Z3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7Cisg
ICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5n
ZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUz
ZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYy
ZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QK
IAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7
CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFn
ZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3Ry
YXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4
N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0
NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vydmlj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEs
NyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0
cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklW
RVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0
RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJn
ZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7
CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAg
ICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmlu
ZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCIt
LXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxl
bmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9
IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBT
dHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3Ry
TGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICIt
LWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBT
dHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsK
KyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdl
dFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFy
ZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNl
cnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFt
ZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBt
X3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3Ry
aW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVk
IGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4g
V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3Qm
IHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVk
LCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJl
ZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICgh
KHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmpl
Y3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNN
YXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRp
ZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQg
cmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRl
IGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICBy
ZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBh
YmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAg
ICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFs
dWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkg
ewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlz
IG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFy
Z3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJz
dE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9
CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytp
KSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBh
YmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRp
ZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQg
Zmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJE
cml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAog
ICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBj
YXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5l
d1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwog
ICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93
ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNl
c3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1h
eGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vz
c2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4m
JiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1h
dGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwg
U3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1
c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpv
cAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwog
ICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nl
c3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1
dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3Vi
dHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVs
bCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmpl
Y3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlv
biBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpT
T046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAg
ICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAg
ICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFs
dWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlk
IGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAg
ICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5
NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046
Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJh
dGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAg
IGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAg
aWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFs
aWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsy
MDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2lu
T2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxl
bWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50
aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2
YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlk
IHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2lu
dGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBA
IC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAg
ZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3Jp
Z2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6
bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9u
Iik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRl
bS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFu
Z2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
eCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAz
NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3Qm
IGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0
aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJl
ckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZv
ciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgs
NyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlw
ZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1
YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50
ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAg
ICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAg
ICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93
biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0
byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0
dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGlu
dmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9u
TW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBp
ZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAg
ICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0
cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBh
Y3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRh
WCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAg
ICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRh
WC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0
aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0Jgog
ICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRh
WSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2Uo
KmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVkn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIx
NjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1Bv
aW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0
YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJz
RGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBw
b2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFu
IG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0y
MTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4g
cHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBv
aW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQ
b2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24K
IHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVj
dCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmpl
Y3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwx
MyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUg
PT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6
Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7
CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMg
aW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5n
ZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rp
b25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNl
c3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVy
VHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24n
dCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1
dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJj
ZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBz
b3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2lu
dGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAg
IGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3Mp
OwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFj
dGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVl
bmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcs
NyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNz
SW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25J
dGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rp
b25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBp
biBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBv
YmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQog
CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rp
b25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0
byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAg
aWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Iikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdm
ZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOwor
ICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBj
YXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGll
czsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
TWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6
T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykg
Y29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVD
RElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJv
d3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNE
SVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93
c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJp
bmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Ny
b2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRy
aXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4u
YWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2Fw
YWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIp
OworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRp
ZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNl
V1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmlu
ZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUy
N2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3Bl
L1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmls
aXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9
CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNo
Q2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVj
dCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0
CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2Vy
Iik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2Vy
Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+
IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNo
ZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlNGQ1NmMwYmU0
OTJhOWJlMjFjOGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcwNzFiY2ViMTQ5NDY2YjY0ZTFmZGU1
OGRhNmFhOTEwZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJp
bmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxs
ZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBkZXByZWNhdGVkIFN0cmluZyhj
b25zdCBjaGFyKikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEoKSBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
CmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFh
ZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJl
YWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09u
ZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAt
NDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQog
CiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmlu
ZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07
CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAg
ICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxM
KG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5
UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07
CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwy
IHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShv
cmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1
KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0
cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9w
dGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIx
MjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07
CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1Rf
VFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29w
eS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1v
dmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigp
KTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAg
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYp
CiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAi
MTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9
OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNU
X0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZm
MjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZh
NGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3Rl
bS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAK
QEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBw
aW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1h
cHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwg
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3Rpbmdf
ZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwog
ICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURh
dGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVt
YmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5k
ZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3
N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51
bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExv
d2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRl
Z2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwg
MikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXgg
ZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3
ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJz
KCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFw
cGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMi
LCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcj
Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciBy
ZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5h
cHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVy
cyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIx
LmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNk
ZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAg
IGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVj
dGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVk
U3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXll
LCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSks
ICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJl
IHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5k
IGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBi
dWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIp
LCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJf
cyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFr
ZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQg
dGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZp
dCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWls
ZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAi
QiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyks
ICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIp
OwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJp
bmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBD
aGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQu
CiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVy
LmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5n
MSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3Ry
aW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9T
dHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNo
cmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5
ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5j
YXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQ
RUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCku
aW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRo
ZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNo
YW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQx
LDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkK
ICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVY
UEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3Ry
aW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNv
bnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFj
aXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFw
cGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXpp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIu
Y2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBU
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJz
OCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0
cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSAr
MjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFw
cGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1Rf
RVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUs
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRl
cik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAg
ICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0
eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxM
Q2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwog
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBT
dHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWls
ZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAg
ICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMi
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYi
KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikg
IT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0
cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBi
dWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRl
ci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBi
dWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hv
dWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYu
LmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBA
QCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0
eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0g
ICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0
RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7
CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RS
VUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikp
OwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
U3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0
OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhi
NDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3Bl
cmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
CiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmlu
ZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9t
U3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlM
aXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmll
dyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9Owog
ICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBF
WFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1
Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1
LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7
CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0
cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxs
byIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0
cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAg
IEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBA
IC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxz
ZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVy
cyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0
cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlz
TnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7
CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAg
ICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5j
b2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25z
KFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0
cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmlu
Z1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5j
b2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVy
YXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29k
ZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2lu
dHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJp
bmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmlu
Z1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Vi
a2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgz
LDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGlu
Z01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUko
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVND
SUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxs
QVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSku
aXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8i
X3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJD
b2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsK
ICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNo
YXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5Yzhi
Y2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RG
X1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1Zh
bGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50
b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBr
dXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsK
ICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2lu
ZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0
bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2
YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUi
X3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBr
dXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwg
a3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJs
Lmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3Mp
LCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlm
aWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJ
ZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5m
cmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0
ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVS
TChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xI
b3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1l
OnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNv
bTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwj
ZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTov
aW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8v
L2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9h
L2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRA
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNU
X0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAg
VEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwg
dXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAi
dmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAg
VVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywg
InZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7
ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJf
cyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
MzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVz
dFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwg
eyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywg
InZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAg
ICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwz
JmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7
ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9y
MTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAi
In0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcx
OCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAg
ICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwg
IiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9
LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2
YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0s
IHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwg
dXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJM
IHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIx
MjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0
Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1
cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAg
VVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3si
IiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3Qi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVy
bDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3Qi
fSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4
KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMw
IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsK
ICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89
PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9
PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwog
ICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89
PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
PT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsK
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTll
NDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4
Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0
b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3Zl
KQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2
MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0g
ICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNl
dCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFw
LnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwg
WyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAg
ICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzVi
MWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBA
IFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJs
ZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFB
U0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3lu
dGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhw
bGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVy
YWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcg
TGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJT
dHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJp
bmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExp
dGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmlu
ZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5n
QVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlW
c051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5n
ID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygi
aGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAog
ICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmlu
ZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1w
dHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50
TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+
PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6
OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3Ry
aW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0
cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2sp
OwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
eDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgm
b2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUg
bGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9r
KTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAi
b2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3
aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBh
bHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJs
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qg
c3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
aW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImlu
ZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmlu
aXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8g
cGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJu
YW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1Qo
V1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJp
bmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJU
ZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhh
c0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJU
ZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBA
QCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShT
dHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9t
VVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAot
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
IlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBT
dHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVy
YWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlt
cGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcg
KzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJp
bmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsK
KyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5p
c051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIg
YWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMw
YjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2
ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENv
bnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0
dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VT
dGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9Owot
ICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBh
dHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0
dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxc
eFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0
dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9G
aWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcu
LjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSAr
NDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0
ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNl
Y29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIp
OworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsK
K2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdl
ZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRS
ZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwog
CiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRl
ckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMu
LjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBA
IC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJh
OiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwi
IChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAg
ICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJp
bmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxh
dGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVND
SUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFT
Q0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxp
ZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAg
ICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJh
XCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAg
IFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91
bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXll
ZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1
MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAs
NyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtl
eWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBs
ZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6Oktl
eWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNU
X1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmlu
ZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJf
cykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmlu
ZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUz
MWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBA
QCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAg
IEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIp
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2
ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28u
dWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1
YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFv
NjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0t
emYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54
bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1h
c2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1
dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25h
bERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRP
bWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
TG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6
ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TD
tiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNv
bSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4Yjgz
ODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJh
c2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJh
c2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdo
dE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKysp
IHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3
dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBz
aXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9
IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0
b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNj
b3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3Bp
Yyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8m
JiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRl
eCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2
Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVz
dCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0
aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJU
X05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNo
YXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1
dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZp
bGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVF
KGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVz
dERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0
YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGlu
MShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZl
ci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3Rp
bmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQx
ZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0
M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVT
VF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hl
Y2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIs
IHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
Il9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYx
NlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4
JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0
RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5n
IGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRo
JTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1w
dHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAg
ICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9z
LCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwo
Imh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVT
VF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tV
UkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0
dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNv
ODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4
NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8
ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmco
IndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlD
JUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQw
JUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRo
PyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJf
cywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9E
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVm
NjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRm
ZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdl
IHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3Jp
Z2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFz
ZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06
OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1
cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBA
IC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5E
YXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBv
biBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBm
cm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7
CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldo
ZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxk
bid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgog
ICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3Jt
YXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5k
IHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBO
U1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGly
ZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tl
cj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNl
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBU
RVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJh
c2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRl
bGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdv
bmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rv
cnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5n
KTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBE
YXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQu
b3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBE
ZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBj
YXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qg
b24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZv
cm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERp
cmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIp
OwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhT
dHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tl
ciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndl
YmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUw
MDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdl
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdl
Lm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRl
bnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5
d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmts
Qmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQv
aU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAg
ICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05q
bVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZp
Y2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFz
RkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJ
ZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhG
NTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFG
am9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2ki
CiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09r
MkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAg
ICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVL
ZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBj
ZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0
cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50
QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4
NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxl
VG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAg
ICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEo
KSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRh
KCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9
IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3Vy
Y2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rv
a2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90
b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyIn
LCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVU
b2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJp
bmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkg
PT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tl
biIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6
IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChr
ZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtl
eS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMy
OCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4o
VG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEg
PSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRh
KCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0
eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2ln
bmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJl
Il9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0
cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4
NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09P
UCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBj
bGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9p
ZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNo
YXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciog
ZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3Rh
dGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwg
QVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFT
Q0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERv
U2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVj
dFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQot
ICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3Ms
IFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVAp
Ci0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jv
c3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFk
ZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGlu
YXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0
aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGlu
YXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlv
bkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVz
dGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3Bv
bnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9w
dXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0
ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6
Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAK
ICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bv
b2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBz
b3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNl
Q09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRl
c3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYm
ICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNP
RVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29s
IHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUt
b3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRl
c3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09
ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsK
ICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVz
dGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBl
Y3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4
MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBz
b3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
QW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
QW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBp
cyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7
CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4K
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdl
IGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2Ft
ZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAg
IC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENP
T1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5X
aXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09P
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVk
KFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRh
MGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1
OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEz
NSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVj
dGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0
KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2Vy
aWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNl
KHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJp
YWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVx
dWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0g
eworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAi
Q29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRS
dWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYg
bGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShz
dHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3Vy
Y2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxp
emUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4
M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3
MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpA
QCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
ewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJh
bWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJG
cmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZy
YW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsK
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBl
PSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25z
dCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAK
IHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUx
OTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3
ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRl
eHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
b250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2Vi
Vmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFz
dGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0
cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9z
KSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlM
aW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVm
ZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0
MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdl
YlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERP
TUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJd
OwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENy
YXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEw
YTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAg
LSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJW
aWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBB
U1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJm
NDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1
MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBT
ZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBA
IC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAog
ICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAg
eyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwg
IlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNv
Y2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3
ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9z
IH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNj
ZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJ
bmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAg
ICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6
OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlx
RE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1v
Z0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkcz
UEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgv
eTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQz
eTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlm
aWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4g
V1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8
dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1
eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAg
ICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10
S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2
TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExm
Zmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAK
ICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2
YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9s
bGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVk
ZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9U
b29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBl
bnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlk
ZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVs
bFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJp
bmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmlu
ZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJ
bXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsg
InLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRT
dHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUi
XHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485563"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457088</attachid>
            <date>2022-04-08 09:57:09 -0700</date>
            <delta_ts>2022-04-08 10:02:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408095709.patch</filename>
            <type>text/plain</type>
            <size>161579</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMjczNTkwNjAzZmE5NTc5MTA3MzBl
NzQ4M2E0MGNlYTg5OTg2YTUuLjYxZjkxOTliYmU5OTU2MGRkMjU5ZDU1ZWVjMWQ3YjdjYzBkZTFl
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA3ICBTYW0g
U25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb25nLWVuYWJs
ZWQgcHJlZmVyZW5jZXMgYXdheSBmcm9tIGV4cGVyaW1lbnRhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0ZGNm
Mjk5NDQ3ZTNhNzQ0ZDU4NWMzN2QyMzdiZDZiYThjY2M3N2IuLmUxMWE5MjY2MTdiZDc2NzFmNjE2
MmJjYmI4MjFmZmIyMTVmMDk5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMi0w
NC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckRhdGFDaGFu
bmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1l
ck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAgIChXZWJD
b3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVj
dFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFJUQ1JUUFN0
cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRz
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDcgIEdhYnJpZWwgTmF2YSBNYXJp
bm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiB1c2luZyBhIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHF1ZXVlIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMgYXMgYSB0
YXNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nCmluZGV4IGYyNzhjMTUyOWQyMzVmYWNhMDllZDkzYTkzY2FhNzdlOGE4
ZjY4MTAuLjFkY2M2MjczZDM2NDI5MDhkOTAxYmVlY2QyZTFjMzJhZTA2NTdlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cnVuKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyBjb25zdCk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24pOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BhdXNlQWN0aW9uKToKKyAgICAgICAgKFdlYkRyaXZlcjo6cHJv
Y2Vzc051bGxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzS2V5QWN0aW9uKToK
KyAgICAgICAgKFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6cHJvY2Vzc1BvaW50ZXJBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzV2hlZWxBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25z
KToKKyAgICAgICAgKiBndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHA6CisgICAgICAgIChXZWJE
cml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBj
b25zdCk6CisgICAgICAgICogd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwOgorICAgICAgICAo
V2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMgY29uc3QpOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGFzIGV4cGxp
Y2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCmluZGV4IDc3MDQ0Y2FkZWMwYmUxNmNhMDg3ZmU2M2I0NmVmZDFhM2YwYWYxOGEuLjEzNTVi
NjRjNzQxMWU1MDMzODEyMTcyM2RkOTg3M2E2MTEzZTNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQg
aWQsIExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9y
dCkKICAgICAgICAgICAgIDogQmFzZUNvbm5lY3Rpb24oaWQpCi0gICAgICAgICAgICAsIGFkZHJl
c3MgeyBhZGRyZXNzIH0KKyAgICAgICAgICAgICwgYWRkcmVzcyB7IFN0cmluZzo6ZnJvbUxhdGlu
MShhZGRyZXNzKSB9CiAgICAgICAgICAgICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwg
bGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFi
ZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRo
IFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBz
dHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBM
YXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAv
IFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBh
bGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGlj
aXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBz
dGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hhcmFjdGVycykgeyByZXR1cm4g
U3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+
IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1Zp
ZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2
YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwp
IGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1
OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAy
NDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBT
dHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0
bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChs
b2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURl
ZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9T
SVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdV
bml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41
NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMg
aXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9u
bHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJp
bmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRh
dGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggYmE3YmE5YTAwNTk2ZDY1MGU0YzdiM2Y3ODNjNzI3
YjIxYTU1ZGQ2Ni4uYTZlNTQ5MTE1YjkyMzZmZjI5ZTExYThkOWMxMTNiZjA2OTM2OGU3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVk
ID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRp
bWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQu
cHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBT
dHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgpKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBu
ZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUyNTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1
OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJjNGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2
OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+
PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQqCiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNk
cFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAg
R1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIlcy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFt
ZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRp
b25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0g
fTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlv
bi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShzZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAog
c3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRlIGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxl
bWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8oR3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5z
ZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFsKG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
bWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAK
ICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qt
cGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8xOTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhh
c0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRlIikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkK
ICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJpbmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRfbmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFi
ZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJlbCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1l
LmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VTdHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBs
aW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpj
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlw
dGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lzSW5pdGlhdG9yKQotICAgICAgICAgICAgbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdl
dCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJT
dWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQo
U3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsK
ICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAh
bWlkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJh
Y2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRy
YW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0
cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5l
d1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZy
b21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMw
YjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4uNWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdm
ZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJS
dHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBt
aWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJhbnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlk
Lm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJl
YW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5
MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMyZjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMs
MTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBv
cnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFt
cDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFt
cCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0g
ICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0
YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMo
c3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAg
IHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQi
KSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJl
X2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1
ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZh
bHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAg
ICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVt
b3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikp
Ci0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAg
c3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8g
RklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRyYXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJk
NzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFkNzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcg
QEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1Bh
cmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWlu
dDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVyYXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAg
ICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0gbWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1l
dGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVy
cywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikpOwogCiAgICAgZG91Ymxl
IHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91Ymxl
KHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0
aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNh
NWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWExZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQsNyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFy
Z2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsK
ICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRGcmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJl
YXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJf
Q09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7CisgICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3Ry
aW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czogIiwgcmVhc29uKTsKICAgICAgICAg
cHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3Vw
L1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNv
dXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDdjNGY0N2UzZDMwYTRkMDY2MjgzMGZkYTIxYWNhOTlh
M2QxZWZmZjAuLjQxNzJjNjE2NDEyNGE0YjM0YmNmZjdhZTY1OTk1Y2IxOTQ0MWQ3NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApA
QCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAg
ICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRl
cz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nhc3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0
ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICAgICAgaWYgKCFieXRlcykg
ewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFp
bChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmwsIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQs
NyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgY29uc3Qg
YXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEo
Ynl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVO
YW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBhdGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAg
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmls
ZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBudWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBj
b250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBlLmdldCgpIH07CisgICAgICAgIGF1dG8gY29u
dGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwog
ICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihk
YXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykg
fTsKICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJk
ZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
OTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25m
aWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAg
ICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9j
b2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNv
ZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGlu
MShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsm
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1
NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRk
M2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAg
c3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNv
bnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RT
dHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVp
bnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+
c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVl
LT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZy
b21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VO
b25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1
MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3
Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVz
dWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVj
a0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAg
ICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFj
dG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFj
dG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRh
dGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9n
ZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAg
ICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2Zh
Y3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7
CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAg
ICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAg
ICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRh
OTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2Fk
KGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsK
ICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0
cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJl
YW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1f
cGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAg
ICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcu
b3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVy
ci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAot
ICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAg
ICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAg
ICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAg
IGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RS
RUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3Nh
Z2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAi
aHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUo
KSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJl
KTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9z
dHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3Ry
aW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0
aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBA
IC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29u
ZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9z
ZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBu
dWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQg
ZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVt
cGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5l
d0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBh
dXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9h
ZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQ
cmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAs
MTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24o
KQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3Vy
cmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9u
IHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRp
b24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBT
dHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJs
LCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0
UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGlu
ZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIp
OwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkg
fSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5Ymlu
VXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewog
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5
IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVk
aWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAg
ICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNI
RSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJX
UEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNF
bXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgp
LmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9
ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0z
OTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBh
cnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0
QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90
ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwog
Ci0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlk
IH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21M
YXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQ
cm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBj
b25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciog
aW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50
LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxp
emF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGlu
aXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpm
cm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2
YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3
YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4
YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
cjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAg
ICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFH
RV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFn
X2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9Owor
ICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFn
ZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9E
RUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4
LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVl
KSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJv
b2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNv
bnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7
CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1
ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwg
bV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmlu
Z1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBT
dHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1l
TWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMw
ZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0x
MjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVu
dChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0
KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRl
ciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmll
ZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9J
TkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8p
ID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5z
ZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFr
ZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOwor
ICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGlu
MShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3Rf
dXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0
dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVu
dCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJv
Y2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICgh
bWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0
cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9Owor
ICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2
LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+
cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmly
c3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9Q
Uk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMx
MmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Zp
ZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlk
ZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAK
ICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNv
ZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAg
ICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25m
aWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRp
ZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIy
NzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5
Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVh
cmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJB
cHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRl
bnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJl
c291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmll
bGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsK
KyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxk
TmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNy
Y01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2Vi
CiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQ
b3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byBy
ZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3Rv
cFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHBy
aXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJl
cnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFs
VVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5v
cmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwp
OwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVt
YmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAg
ICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgp
IH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHBy
aXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1
bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAg
LTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJL
aXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIg
R19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJh
bmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6
ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1i
ZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04
ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2Nv
bHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJp
U3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAg
IHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0
aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFl
M2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9y
PFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QK
ICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpz
dHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVk
KEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcu
Y19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMu
YXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAg
ICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0
cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktl
eUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19D
bGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5
U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIs
IHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0
ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgK
aW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFm
Y2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dT
dHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25B
bGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dl
ZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5
cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxl
U3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAg
ICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShz
dHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAg
ICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5
M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYw
YzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICsz
MjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJl
YW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2lu
YWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRv
JiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmds
ZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0
cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsg
b3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0Nv
ZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVj
b2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAg
IHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBz
SGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkg
ewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMo
ZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVk
aWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdl
M2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWEx
NzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1l
ZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQ
dHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24o
b3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5n
ZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRp
b24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJI
LjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0
d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZm
ZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMw
OTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAg
LTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxh
dGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0Vf
TUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JV
RkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpn
ZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6
ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAg
aWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9
IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVu
dHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2
ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBi
NmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUs
NyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdD
R0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6
Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwot
ICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzcz
NDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4
IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1h
eGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJ
bmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVy
ZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhH
TF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBt
X3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2
ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxp
dCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEw
MzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNlZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThm
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcApAQCAtMzAxLDcgKzMwMSw3IEBA
IGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRmb3JtU3VwcG9ydHNFeHRlbnNpb24oY29u
c3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OmdldEV4dGVu
c2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9F
WFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZhODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1
OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZhYzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3
IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5h
bWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6
OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51
bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNw
cAppbmRleCA2NmRiZWM0MGFhYzJiNzM5N2ExOTMzMTE2NmM3MmJkNjI2MTZlMDZlLi4yODY1Yjhi
OGFhNDQxYzM1OWUyYTQ2YTM0YWU2OWVkN2U3Nzk3YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcApAQCAtNTQsNyArNTQsNyBAQCBjb25zdCBU
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmli
dXRlczo6Z2V0KCkKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgICAgICBhdHRyaWJ1dGVzLmlzR0xF
UzJDb21wbGlhbnQgPSB0cnVlOwogCi0gICAgICAgIFN0cmluZyBleHRlbnNpb25zU3RyaW5nKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7
CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uc1N0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwog
ICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRleHR1cmVzID0gZXh0ZW5zaW9uc1N0cmlu
Zy5jb250YWlucygiR0xfT0VTX3RleHR1cmVfbnBvdCIpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1
cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRf
dW5wYWNrX3N1YmltYWdlIik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRl
ci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2
ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEwZTNkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBAIFRleHR1cmVNYXBwZXJGUFND
b3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigpCiAgICAgLCBtX2xhc3RGUFMoMCkKICAg
ICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmluZyBzaG93RlBTRW52aXJvbm1lbnQgeyBn
ZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAgYXV0byBzaG93RlBTRW52aXJvbm1lbnQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSk7CiAgICAgYm9v
bCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwgPSBTZWNvbmRzKHNob3dGUFNFbnZpcm9u
bWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sgJiYgbV9mcHNJbnRlcnZhbCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
aW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4uNTk1NzM5NTUy
MzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMsNyArMTAzLDcg
QEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNlKEdSZWZQdHI8
R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlw
ZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNsYXNzQ2hhcihn
c3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAgU3RyaW5nIGRl
dmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBhdXRvIGRldmlj
ZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQoKSk7CiAgICAg
aWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSAmJiAhZGV2
aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0
eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2aWNlQ2xhc3Mu
c3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFjOGE0ODMwMzg0
NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRkNjJhMTNhZGI2
ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpj
cmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihv
KSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWduYWwob2JqZWN0
UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0aC5nZXQoKSk7
CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmplY3RQYXRoLmdl
dCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFjZSgiL3JlcXVl
c3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7CiAKICAgICAv
LyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5cGUoKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0
ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0
aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3
M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJ
bmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nl
cnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBD
ZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0
ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVy
biBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVy
cm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9l
cnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86
OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4
X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFl
NWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUy
MGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhh
bmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxj
b2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihl
cnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJl
cnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0
KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6
OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2
ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRp
b25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlv
bmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAg
ICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJl
c3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmlu
ZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3
ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2
LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZp
bGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChk
YXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBV
UkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihH
bG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJp
bmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21M
YXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwp
OwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3
NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpG
aWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1
c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihH
bG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFb
MF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAg
ICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmco
ZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxl
VVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3Rl
bVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAg
ICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcg
Z2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VD
Q0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7
CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0
PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmlu
ZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAg
ICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVt
KCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5z
RmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAg
ICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNv
dXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBT
dHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3Jp
bmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVk
OTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4
ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
YXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVh
ZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBz
dGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpP
cGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpH
ZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0
cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93
cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQu
dGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07
CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8
Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNi
RGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9h
cmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAg
ICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAg
ICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5n
IHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAg
ICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBj
cmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRh
NTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEw
NWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAg
Ly8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJI
aWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcg
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBT
dHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBk
NzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0
YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSAr
MTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5
U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJh
dGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAg
ICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3Mp
OwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBj
YXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdl
ciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVy
U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4
IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkw
NmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIv
V2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2
aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBh
cmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAg
U3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0g
Z2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0g
U3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBp
IDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03
NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVu
Z3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBv
cnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAg
ICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAg
IHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICgh
c3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAg
ICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBo
b3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmlu
ZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxh
dGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJn
ZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJM
ZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3Ry
aW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBi
b29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09O
OjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQo
KSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNo
IG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygi
c2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9y
PENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25z
dCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRp
ZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0Lgog
ICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRp
ZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxp
ZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAg
ICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5
aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFi
aWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGll
cygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5
c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxp
dGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpP
YmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNo
Q2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2Fw
YWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2gg
Y2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3Ig
Y29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVz
PiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVj
dCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVz
TGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAg
IGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1h
dGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52
YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0
TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBh
YmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNo
IGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5k
UmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBT
dHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2Fw
YWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpT
T046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZh
aWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5v
dENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJz
LCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1i
ZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVh
dGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1
bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9y
PENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5k
UmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNM
aXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNz
aW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMg
Ym9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24m
IGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1
cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBh
Y3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdk
dXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9z
KTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBv
ciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIp
CiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAs
MTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6
S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
dmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkg
dXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1
dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3Zh
bHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9y
IGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2Rl
IHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJN
b3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAg
ICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24i
X3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZh
bHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVy
YXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgp
OwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0
aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAg
aWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAg
ICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6
d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewot
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3Jp
Z2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlv
bi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwg
ZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9p
bnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwg
cwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAg
ICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6
OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIw
MjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09O
OjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZh
bHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFs
dWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsK
QEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlv
bihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1
dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5
ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgh
eSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFs
dWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4g
cHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAg
ZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5
cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBh
Y3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0
cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVy
RG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
YnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9y
IHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rv
d24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAg
IH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAg
ICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24u
YnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsy
MTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24o
Y29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0g
InNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9s
bDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBp
bnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIx
MjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVs
QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8g
ZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAg
ICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5U
X01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9u
LmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwg
SlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0u
Z2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVB
c051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICgh
ZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7
CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1l
dGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0
byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAg
aWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFj
dGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFt
ZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2lu
dGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQog
ICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMu
cG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24g
c2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNl
c3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVu
Y2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmpl
Y3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNl
IGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8
QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAg
IGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1
dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0
aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFj
dGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBz
ZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0y
MjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBw
cm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBp
bnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3Vy
Y2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRT
b3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRl
ciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24n
dCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlu
cHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJy
YXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5v
dCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxB
Y3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAg
ICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVl
bmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVu
Y3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0
aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9y
IG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVy
L2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRy
aXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZk
ZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGll
cyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3Ry
aW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxp
bnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0
dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxK
U09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMm
IGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9
IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9T
VFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0g
U3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NU
UklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50
cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGll
cy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4v
V2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFi
OGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJp
bGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBD
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUg
PSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmco
IndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJl
dHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9X
ZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNl
cnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkz
ZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBA
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVz
IGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJs
aW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9z
KTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBj
YXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6
VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBh
YmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJp
bmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJp
bmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9
IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2Vy
T3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlv
bnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDBlNGQ1NmMwYmU0OTJhOWJlMjFjOGFlNjliNzE0M2ZmMDFjMzRmZGQuLjc1OTcwNzFiY2Vi
MTQ5NDY2YjY0ZTFmZGU1OGRhNmFhOTEwZWM5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNv
ZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hh
ciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmls
ZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQ
SGVhZGVyRmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZm
aXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
aGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0
VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZp
ZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0p
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBkZXBy
ZWNhdGVkIFN0cmluZyhjb25zdCBjaGFyKikgd2l0aCBTdHJpbmc6OmZyb21MYXRpbjEoKSBpbiBt
b3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEw
NGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5h
bC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFz
T25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
Q29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5n
KQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUo
b3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBT
dHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCkt
PnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFs
KTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAg
RVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBA
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAg
LTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFs
U3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJp
bmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0
cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5h
bCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2Ni
YjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3
NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVT
eXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAg
IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4
aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vz
cyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5n
KCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFy
ZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJV
RSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hl
eE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNh
OC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAg
VEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
YSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAz
LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJG
QUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4
MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBj
aGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4u
YTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2Mywy
NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsg
Ly8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7
CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkp
OwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0
ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFla
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5
ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0
ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0
cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5j
X3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9t
TGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVy
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdl
Jyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5
ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5n
KCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0
IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRl
ci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxz
ZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVy
ZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1
dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3Qg
bmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAi
Iik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1
aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5j
YXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAg
IEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmlu
Zyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkg
aXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5n
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAg
ICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyks
IGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBS
ZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVu
c2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBh
Y2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5n
QnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2Fw
YWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsK
QEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJD
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkg
PSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5j
YXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsK
ICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwog
CiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIu
c2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVh
cikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkK
ICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEw
KTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAg
ICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRl
ci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsK
ICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIx
LCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
PT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIx
MjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFw
cGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
PT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWls
ZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRl
cjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7
CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9
IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWls
ZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAg
ICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9t
U3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIx
MjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0
cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdh
MWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00
NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FT
Q0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5n
IHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAg
ICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRf
VFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7
CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0
eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRm
YjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBj
N2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmlu
ZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAg
QXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxp
dGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tp
bmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3Ry
aW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNr
aW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGEx
NzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlh
M2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRo
RW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3
IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVs
bG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFy
YWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRo
KG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlW
c051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZp
ZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dp
dGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dp
dGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0
ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmll
d0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
Vmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8i
X3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2lu
dHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3Is
ICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJr
aXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29k
ZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50
c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0
ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExl
YWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmll
d0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxv
IikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNv
Y29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5n
KCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3
KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSku
aXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNl
X2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4
ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2
NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwx
NiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNU
X1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9
PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIp
LCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhh
bXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSgh
IWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
cGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9p
bmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4
Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Iiks
IGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdt
ZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3Jl
YXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0
aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VS
TCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6
QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
dXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZp
bGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNl
cm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0z
NjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAg
ICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3Ix
Mik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0
IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVy
bDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAg
ICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5
MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAK
ICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwg
eyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywg
InZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwx
NiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJr
ZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVS
TCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5
MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJs
MTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1
cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
NzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsi
a2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0
VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwg
dXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEi
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0s
IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIi
X3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsK
ICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Py8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIv
P3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwog
ICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89
dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0s
IHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwy
NyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwy
OCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3si
Lz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0s
IHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJs
MzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0s
IHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRl
c3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVz
dFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRl
c3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5j
cHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIy
M2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9y
LCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEi
IH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmlu
ZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIg
fSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2
MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9
IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAt
PiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1
YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZi
MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAt
NDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAg
IEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBj
b25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQ
RUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0
ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcg
c3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEo
c3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAg
ICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBU
RVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdT
dGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3Ry
aW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMo
ImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0
c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJz
LnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwg
U3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAg
IHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3Vs
dCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJl
c3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQog
CiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEg
QEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3Ry
aW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJf
cykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0g
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3Vj
Y2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0
dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5j
eSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0
dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25s
eSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3Vj
aCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJz
dCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3Qi
X3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAK
ICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwog
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0z
NDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAg
IEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi
5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70i
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0i
KSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVz
dCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9
CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEo
IlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJh
bCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9G
QUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFz
aCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAK
IFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBz
dHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQo
KSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZl
NWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0
NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzky
LDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAg
dGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0g
PSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0s
IENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJ
SSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJ
KTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBh
dHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUy
ZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERh
dGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0
YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0
IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMg
aXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3Ig
dGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5
NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJz
ZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAg
ICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlD
b21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9
LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAg
IFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZy
b21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpm
cm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAg
IHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxk
LCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAog
ICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1
b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsK
ICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2Rl
NjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgz
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91
YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNU
X1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmlu
ZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIp
KSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29k
ZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBT
dHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3Rp
bmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5
NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0x
NTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1
NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmlu
Zyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5j
by51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0t
emYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEi
X3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwog
ICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJp
bmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3Qi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XD
pMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLD
hcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEo
IsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4
N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJh
NzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJh
c2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJl
Y29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2Nv
cGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNu
cHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAg
IHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9w
aWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6
ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChy
ZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShy
ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1No
YXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVk
QnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1
Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMs
NyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9z
KSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3Rp
bmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVu
dHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkg
PT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUo
KSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhD
b250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRj
NGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0
M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzks
NyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rp
bmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/w
n5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlG
JTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQj
JUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwog
Ci0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBB
TDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUy
MHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBz
cGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4x
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7
CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAi
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1
ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEs
NyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rp
bmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwg
eyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8i
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAg
ICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpU
ZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4
dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRz
ID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNr
VVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkx
LCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9w
YXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0
L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygi
d3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5
QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMl
RDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgx
ODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZh
MGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5
LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJ
biB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZy
b20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVt
b3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERl
bGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFj
dHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3Rp
bGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMg
Y2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhl
IERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJT
UUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJT
UUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5V
VEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRy
YWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3Ms
ICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VU
cmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAg
ICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3Jp
Z2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZy
b20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3
Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAg
Ly8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJh
c2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRp
b24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAg
ICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0
IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRo
ZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYz
MGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFl
NDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50
aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJ
b0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0Jl
QWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAg
ICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXoz
MVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAg
ICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBl
bUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFO
QmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBA
IFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3Uz
R1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMi
CiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhw
Tk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlK
WW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3gr
V0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAg
ICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtl
eSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRD
ZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdj
YjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4
NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
dmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lk
IHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkg
c2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3Ry
KHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkp
KTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmlu
ZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlv
bl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9
IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3Vy
Y2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVf
dG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Qy
U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5s
ZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Qy
U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQg
c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBz
aWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXpl
KCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkg
PSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291
cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2Vj
cmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVz
dDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQp
OwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRT
ZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVS
TERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRv
a2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3Np
Z25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1Bh
cnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRf
dG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3Np
Z25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywg
c3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2Nm
ZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0
OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5
LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdh
dGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8s
IFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVz
IH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJj
ZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09P
UCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2lu
LCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBl
eHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVy
YWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0
aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBp
c1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBF
eHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNv
dXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlm
IChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9w
ZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAg
aWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
RW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VI
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7
CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsK
ICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkp
OworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAg
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7
CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlv
bkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0
aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNl
cnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lk
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hh
ciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Q
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHRO
UyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3Jp
Z2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAi
KTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVz
dGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAm
JiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNv
cnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJj
ZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJf
czsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVz
dGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJl
cXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhw
ZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBA
IC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAy
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29y
cCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRo
ZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlz
IG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0
KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24n
dCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJl
ZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3Qg
ZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAz
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJv
b2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
aW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNh
NmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
QEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlz
dCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNl
cnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVj
ZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0s
IG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwg
bWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNl
cmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRU
UFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJf
cyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0o
VmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJh
bGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZl
dGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
aW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgx
NWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlm
cmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwot
Y29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFt
ZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJh
bWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+
IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3
ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOwor
IjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4
NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2
NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRN
ZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtO
U1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmco
W3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBj
b250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMx
N2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJl
YTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChX
ZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVu
dCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVy
eVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAg
ICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmlu
Zyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJf
cyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIz
NTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVh
NGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAg
LTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5T
U3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hl
ZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRU
UFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRl
eCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2
ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2Nr
ZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUK
ICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwg
ewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7
ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0
LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsg
IlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24i
X3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJf
cywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUo
SFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rp
b25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4
X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2
WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1O
bEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRu
VzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUx
Vzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0i
KTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0
byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRl
KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2
OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAg
ICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRk
TmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2ox
Z201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1
UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1
MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExm
Zmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2Rl
KHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZh
dGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3Bw
IGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBh
ZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4
Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9t
YWluLmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3
LDEzICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRl
c3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9Owor
ICAgIFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJ
bXBsID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAi
IiB9OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwq
IGFuRW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcg
YW44Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmlu
Z0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9
IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457089</attachid>
            <date>2022-04-08 10:02:27 -0700</date>
            <delta_ts>2022-04-08 10:09:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408100226.patch</filename>
            <type>text/plain</type>
            <size>161612</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCBmZDlmNzhlN2QyMTRlODk5MDhhMDY1OGFiZGY2ZTk1NzA2OTdmYmI2Li4z
MjQyMDkwNjg3Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRkZjYzYTg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21DYXBz
KCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAwKQogICAgIEdVbmlxdWVQdHI8Y2hh
cj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkp
OwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcgeyBjb2RlYy5nZXQoKSB9OworICAg
IGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21MYXRpbjEoY29kZWMuZ2V0KCkpOwog
I2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbJl0gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyQ29tbW9uLmNwcAppbmRleCA3YTM2MjYzZmUwMTEzNDQwZTU0NTZjMTkyZDlhMTg0NTI5Yzk1
Yjk4Li5kNDIwZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThmYzM2N2U0ZDNhOTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29t
bW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBw
YXJzZUdzdFN0cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVl
LCBncG9pCiB7CiAgICAgaWYgKGF1dG8ganNvblZhbHVlID0gZ3N0U3RydWN0dXJlVmFsdWVUb0pT
T04odmFsdWUpKSB7CiAgICAgICAgIGF1dG8qIG9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNP
Tjo6T2JqZWN0Kj4odXNlckRhdGEpOwotICAgICAgICBvYmplY3QtPnNldFZhbHVlKFN0cmluZyB7
IGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwo
KSk7CisgICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtf
dG9fc3RyaW5nKGZpZWxkSWQpKSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9
CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXIuY3BwCmluZGV4IGJkNmJlNmY3YTYzMGUzNmNjN2JmMTU4NTJiNjBlMjIxYjE2NzI0NzUu
LjY3ZDcwY2JjZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQzODExNjYwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgR1N0
cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdp
c3RyeVNjYW5uZXI6OkVsZW1lbnQKICAgICBpZiAoc2hvdWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZp
ZXIgPT0gQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXI6OlllcykgewogICAgICAgICBmb3IgKEdMaXN0
KiBmYWN0b3JpZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3JpZXM7IGZhY3RvcmllcyA9IGdfbGlzdF9u
ZXh0KGZhY3RvcmllcykpIHsKICAgICAgICAgICAgIGF1dG8qIGZhY3RvcnkgPSByZWludGVycHJl
dF9jYXN0PEdzdEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9yaWVzLT5kYXRhKTsKLSAgICAgICAgICAg
IFN0cmluZyBtZXRhZGF0YSB7IGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3Rv
cnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9OworICAgICAgICAgICAgYXV0byBtZXRh
ZGF0YSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0
YShmYWN0b3J5LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9LTEFTUykpOwogICAgICAgICAgICAgYXV0
byBjb21wb25lbnRzID0gbWV0YWRhdGEuc3BsaXQoJy8nKTsKICAgICAgICAgICAgIGlmIChjb21w
b25lbnRzLmNvbnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAgICAgICAgICAgICAgICAgaXNVc2luZ0hh
cmR3YXJlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggYWJkMzYyOTYyYTQzNTYwODIyMzNjYjE0YTk5MDdkOTA2MzRhNmRjNy4u
MDFmZWZlYTMyZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2OTBmYmQxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM2NSw3ICszNjUsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBVUkwmLCBjb25z
dCBDb250ZW50VHlwZSYsIE1lZGlhU291cgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgbV9zdHJlYW1Qcml2
YXRlID0gJnN0cmVhbTsKLSAgICBsb2FkKFN0cmluZygibWVkaWFzdHJlYW06Ly8iKSArIHN0cmVh
bS5pZCgpKTsKKyAgICBsb2FkKG1ha2VTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIiwgc3RyZWFtLmlk
KCkpKTsKICAgICBzeW5jT25DbG9jayhmYWxzZSk7CiAKICAgICBtX3BsYXllci0+cGxheSgpOwpA
QCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZ3N0X21lc3NhZ2VfcGFy
c2VfZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0cigpKTsKICAgICAg
ICAgR1NUX0VSUk9SKCJFcnJvciAlZDogJXMgKHVybD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVz
c2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgbV9lcnJvck1l
c3NhZ2UgPSBTdHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsKKyAgICAgICAgbV9lcnJvck1lc3NhZ2Ug
PSBTdHJpbmc6OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdlKTsKIAogICAgICAgICBlcnJvciA9IE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5OwogICAgICAgICBpZiAoZ19lcnJvcl9tYXRj
aGVzKGVyci5nZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwgR1NUX1NUUkVBTV9FUlJPUl9DT0RFQ19O
T1RfRk9VTkQpCkBAIC0xODg5LDcgKzE4ODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBlbHNl
IGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImh0dHAtaGVhZGVycyIpKSB7
CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJQcm9jZXNzaW5nIEhU
VFAgaGVhZGVyczogJSIgR1NUX1BUUl9GT1JNQVQsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICBp
ZiAoY29uc3QgY2hhciogdXJpID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwg
InVyaSIpKSB7Ci0gICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZyB7IHVyaSB9IH07Cisg
ICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMSh1cmkpIH07CiAgICAg
ICAgICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwog
CiAgICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3VybCkgewpAQCAtMjE2Niw3ICsyMTY2LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbmZpZ3VyZURvd25sb2FkQnVm
ZmVyKEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ0ZW1w
LXRlbXBsYXRlIiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbnVsbHB0cik7CiAgICAgR1NU
X0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUmVjb25maWd1cmVkIGZpbGUgZG93bmxvYWQgdGVt
cGxhdGUgZnJvbSAnJXMnIHRvICclcyciLCBvbGREb3dubG9hZFRlbXBsYXRlLmdldCgpLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpKTsKIAotICAgIFN0cmluZyBuZXdEb3dubG9hZFByZWZpeFBh
dGggeyBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpIH07CisgICAgYXV0byBuZXdEb3dubG9hZFBy
ZWZpeFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEobmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSk7
CiAgICAgcHVyZ2VPbGREb3dubG9hZEZpbGVzKG5ld0Rvd25sb2FkUHJlZml4UGF0aC5yZXBsYWNl
KCJYWFhYWFgiLCAiIikpOwogfQogCkBAIC0yNDcwLDExICsyNDcwLDExIEBAIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhv
dWdoLiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAg
ICAgICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KICAgICAgICAg
VVJMIGJhc2VVcmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5ld0xvY2F0aW9uKSA/IFVSTCgpIDogbV91
cmw7Ci0gICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nIHsgbmV3TG9jYXRp
b24gfSk7CisgICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nOjpmcm9tTGF0
aW4xKG5ld0xvY2F0aW9uKSk7CiAKICAgICAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gcGxheWJp
blVybFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGlwZWxpbmUuZ2V0KCksICJjdXJyZW50
LXVyaSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBudWxscHRyKTsKLSAgICAgICAgVVJMIHBs
YXliaW5VcmwgeyBTdHJpbmcgeyBwbGF5YmluVXJsU3RyLmdldCgpIH0gfTsKKyAgICAgICAgVVJM
IHBsYXliaW5VcmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocGxheWJpblVybFN0ci5nZXQoKSkgfTsK
IAogICAgICAgICBpZiAocGxheWJpblVybCA9PSBuZXdVcmwpIHsKICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlBsYXliaW4gYWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0
aW9uLiIpOwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9vbCBpc01lZGlhRGlza0NhY2hlRGlzYWJs
ZWQoKQogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsK
ICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpn
ZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FDSEUiKSk7CisgICAgICAgIGF1
dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVf
TUVESUFfRElTS19DQUNIRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdHJpcFdoaXRlU3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNh
c2VXaXRob3V0TG9jYWxlKCk7CiAgICAgICAgICAgICByZXN1bHQgPSAodmFsdWUgPT0gIjEiIHx8
IHZhbHVlID09ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIpOwpAQCAtMzkxOCw3ICszOTE4LDcgQEAg
SW5pdERhdGEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXJzZUluaXREYXRhRnJvbVBy
b3RlY3Rpb25NZXNzYWdlKEdzdE1lc3MKICAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51
bGxwdHI7CiAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQo
KSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKIAotICAgICAgICAgICAgaW5p
dERhdGEuYXBwZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1JZCB9LCBkYXRhIH0pOworICAg
ICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lz
dGVtSWQpLCBkYXRhIH0pOwogICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy5h
ZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQpAQCAt
NDAzOSw3ICs0MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRs
ZVByb3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQpCiAgICAgY29uc3QgY2hhciogZXZlbnRL
ZXlTeXN0ZW1VVUlEID0gbnVsbHB0cjsKICAgICBHc3RCdWZmZXIqIGluaXREYXRhID0gbnVsbHB0
cjsKICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudCwgJmV2ZW50S2V5U3lzdGVt
VVVJRCwgJmluaXREYXRhLCBudWxscHRyKTsKLSAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50
ZXJlZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJRCB9LCBpbml0RGF0YSB9KTsKKyAgICBp
bml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtl
eVN5c3RlbVVVSUQpLCBpbml0RGF0YSB9KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OndhaXRpbmdGb3JLZXkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDAzZWRhYzhjOGU5N2JiMWVhYTRiMzNiM2Y0NDU5
YWNkYWRmYjk0NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVmNWRmN2JmOGJjZTVkZWMyZjhkOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3
ICsxOTUsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldExhbmd1YWdlQ29k
ZShHc3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2YQogewogICAgIFN0cmluZyBsYW5ndWFn
ZTsKICAgICBpZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSwgbGFuZ3VhZ2Up
KSB7Ci0gICAgICAgIGxhbmd1YWdlID0gU3RyaW5nIHsgZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29k
ZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkgfTsKKyAgICAgICAgbGFuZ3VhZ2Ug
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEo
bGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBHU1RfREVCVUcoIkNvbnZlcnRlZCB0
cmFjayAlZCdzIGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwgbV9pbmRleCwgbGFuZ3VhZ2UudXRmOCgp
LmRhdGEoKSk7CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSB2YWx1ZSkgewogICAgICAgICAgICAg
dmFsdWUgPSBsYW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0YWdzLCBjb25zdCBnY2hhciogdGFnTmFt
ZSwgUwogICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRhZ1ZhbHVlOwogICAgIGlmIChnc3RfdGFn
X2xpc3RfZ2V0X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAmdGFnVmFsdWUub3V0UHRyKCkpKSB7CiAg
ICAgICAgIEdTVF9ERUJVRygiVHJhY2sgJWQgZ290ICVzICVzLiIsIG1faW5kZXgsIHRhZ05hbWUs
IHRhZ1ZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgdGFnVmFsdWUu
Z2V0KCkgfTsKKyAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgU3RyaW5nOjpmcm9tTGF0aW4x
KHRhZ1ZhbHVlLmdldCgpKSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVy
LmNwcAppbmRleCBkN2JlODA1MThlZDY5ZWNlY2Q3MTZmYWIyMzIzMGY4Yzc2MGI5NmM1Li4zMDVl
NTFhZmY3NWM1ZmIwYmEzYWVhZDJhMTU0MzBmMmNhNGY0YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHZv
aWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVudCogZWxl
bWVudCkKICAgICBnc3RfcGFkX2FkZF9wcm9iZShzaW5rUGFkLmdldCgpLCBwcm9iZVR5cGUsIFtd
KEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IEdz
dFBhZFByb2JlUmV0dXJuIHsKICAgICAgICAgYXV0byBbbW9kaWZpZWRCdWZmZXIsIG1ldGFdID0g
ZW5zdXJlVmlkZW9GcmFtZU1ldGFkYXRhKEdTVF9QQURfUFJPQkVfSU5GT19CVUZGRVIoaW5mbykp
OwogICAgICAgICBHU1RfUEFEX1BST0JFX0lORk9fREFUQShpbmZvKSA9IG1vZGlmaWVkQnVmZmVy
OwotICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZyB7IHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9LCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9n
ZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKKyAgICAgICAgbWV0YS0+cHJp
di0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4odXNlckRhdGEpKSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFt
cCgpLCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JF
X09LOwogICAgIH0sIGdzdF9lbGVtZW50X2dldF9uYW1lKGVsZW1lbnQpLCBnX2ZyZWUpOwogCkBA
IC0xMzUsNyArMTM1LDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxl
bWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBpZiAoIW1ldGEpCiAgICAgICAgICAg
ICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKIAotICAgICAgICBTdHJpbmcgZWxlbWVudE5hbWUg
eyByZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkgfTsKKyAgICAgICAgYXV0byBlbGVt
ZW50TmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2Vy
RGF0YSkpOwogICAgICAgICBhdXRvIHZhbHVlID0gbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVz
LmdldChlbGVtZW50TmFtZSk7CiAgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5z
ZXQoZWxlbWVudE5hbWUsIHN0ZDo6bWFrZV9wYWlyKHZhbHVlLmZpcnN0LCBnc3RfdXRpbF9nZXRf
dGltZXN0YW1wKCkpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBkNjQwNGMxMjBj
YThhZGUxMGY3NWViN2I5YjNhZGMyZDVjM2QzOTBhLi45NmRmY2ZjMTJjZWM3Y2JjMDRlM2QzY2Zi
NTk5ZTU3MzVlMzIzZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlR1N0
cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZF
UlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRp
bHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9
IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1h
aW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCmluZGV4IGQwYWQ2NzJkNzEwOTdjZjkxMmExNzMyMjcwNWRmMGVlZDNjMjA4ZTMu
LmQ1MTFkYTEwMDE5Y2I0MWQyZTg4NjQ0YzNmM2E5OWI3NzE3ZjhiOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgc3Rh
dGljIGJvb2wgd2ViS2l0V2ViU3JjU2V0RXh0cmFIZWFkZXIoR1F1YXJrIGZpZWxkSWQsIGNvbnN0
IEdWYWx1ZSogdmFsdWUsIGdwb2kKIAogICAgIEdTVF9ERUJVRygiQXBwZW5kaW5nIGV4dHJhIGhl
YWRlcjogXCIlczogJXNcIiIsIGZpZWxkTmFtZSwgZmllbGRDb250ZW50LmdldCgpKTsKICAgICBS
ZXNvdXJjZVJlcXVlc3QqIHJlcXVlc3QgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZVJlcXVlc3QqPih1
c2VyRGF0YSk7Ci0gICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZyB7IGZpZWxk
TmFtZSB9LCBTdHJpbmcgeyBmaWVsZENvbnRlbnQuZ2V0KCkgfSk7CisgICAgcmVxdWVzdC0+c2V0
SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZE5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoZmllbGRDb250ZW50LmdldCgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTY0NCw3ICs2NDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJL
aXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgIEFTU0VSVChtZW1i
ZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbiAhPSBtZW1iZXJzLT5zdG9wUG9zaXRpb24pOwogCiAgICAg
R1NUX0RFQlVHX09CSkVDVChzcmMsICJQb3N0aW5nIHRhc2sgdG8gcmVxdWVzdCBSJXUgJXMgcmVx
dWVzdGVkUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCAiIHN0b3BQb3NpdGlvbj0lIiBHX0dV
SU5UNjRfRk9STUFULCBtZW1iZXJzLT5yZXF1ZXN0TnVtYmVyLCBwcml2LT5vcmlnaW5hbFVSSS5k
YXRhKCksIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uLCBtZW1iZXJzLT5zdG9wUG9zaXRpb24p
OwotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyBwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkgfSB9Owor
ICAgIFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgp
KSB9OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNl
dEFsbG93Q29va2llcyh0cnVlKTsKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKG1lbWJlcnMtPnJlZmVycmVyKTsK
IAogICAgIGlmIChwcml2LT5odHRwTWV0aG9kLmdldCgpKQotICAgICAgICByZXF1ZXN0LnNldEhU
VFBNZXRob2QoU3RyaW5nIHsgcHJpdi0+aHR0cE1ldGhvZC5nZXQoKSB9KTsKKyAgICAgICAgcmVx
dWVzdC5zZXRIVFRQTWV0aG9kKFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5odHRwTWV0aG9kLmdl
dCgpKSk7CiAKICNpZiBVU0UoU09VUCkKICAgICAvLyBCeSBkZWZhdWx0LCBIVFRQIEFjY2VwdC1F
bmNvZGluZyBpcyBkaXNhYmxlZCBoZXJlIGFzIHdlIGRvbid0CkBAIC02ODEsNyArNjgxLDcgQEAg
c3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERh
dGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZm9ybWF0
ZWRSYW5nZS5yZXNldChnX3N0cmR1cF9wcmludGYoImJ5dGVzPSUiIEdfR1VJTlQ2NF9GT1JNQVQg
Ii0iLCBtZW1iZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbikpOwogICAgICAgICBHU1RfREVCVUdfT0JK
RUNUKHNyYywgIlJhbmdlIHJlcXVlc3Q6ICVzIiwgZm9ybWF0ZWRSYW5nZS5nZXQoKSk7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpSYW5nZSwgU3Ry
aW5nIHsgZm9ybWF0ZWRSYW5nZS5nZXQoKSB9KTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmc6OmZyb21MYXRpbjEoZm9ybWF0
ZWRSYW5nZS5nZXQoKSkpOwogICAgIH0KICAgICBBU1NFUlQobWVtYmVycy0+cmVhZFBvc2l0aW9u
ID09IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKTsKIApAQCAtODgxLDcgKzg4MSw3IEBAIGNv
bnN0IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogCiBzdGF0
aWMgVVJMIGNvbnZlcnRQbGF5YmluVVJJKGNvbnN0IGNoYXIqIHVyaVN0cmluZykKIHsKLSAgICBy
ZXR1cm4gVVJMIHsgU3RyaW5nIHsgdXJpU3RyaW5nIH0gfTsKKyAgICByZXR1cm4gVVJMIHsgU3Ry
aW5nOjpmcm9tTGF0aW4xKHVyaVN0cmluZykgfTsKIH0KIAogc3RhdGljIGdjaGFyKiB3ZWJLaXRX
ZWJTcmNHZXRVcmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwCmluZGV4IDA0ZWFlMDBjYTU1MzllN2QyZDliMjgzOTVjZTlhZTNmNjg3MTIyOWQuLmJjNTM5
YTg3NDc4MDI4MTgxM2Y2YWYzMDBhZTJlMDJiNzZhZTYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVu
ZGVyLmNwcApAQCAtMTIyLDkgKzEyMiw5IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBDRE1GYWN0
b3J5VGh1bmRlcjo6c3VwcG9ydGVkS2V5U3lzdGVtcygpIGNvbnN0CiAgICAgaWYgKHN1cHBvcnRl
ZEtleVN5c3RlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGVtcHR5U3RyaW5n
OwogICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBvcnRlZChHU3RyZWFtZXJFTUVVdGls
aXRpZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0sIGVtcHR5U3RyaW5nLmNfc3RyKCkpID09IEVSUk9S
X05PTkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChHU3RyZWFtZXJF
TUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0pOworICAgICAgICAgICAgc3VwcG9ydGVk
S2V5U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKEdTdHJlYW1lckVNRVV0aWxpdGll
czo6c19XaWRldmluZUtleVN5c3RlbSkpOwogICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1
cHBvcnRlZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0sIGVtcHR5
U3RyaW5nLmNfc3RyKCkpID09IEVSUk9SX05PTkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlT
eXN0ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0p
OworICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSkpOwogICAgICAg
ICBHU1RfREVCVUcoIiV6dSBzdXBwb3J0ZWQga2V5IHN5c3RlbXMiLCBzdXBwb3J0ZWRLZXlTeXN0
ZW1zLnNpemUoKSk7CiAgICAgfTsKICAgICByZXR1cm4gc3VwcG9ydGVkS2V5U3lzdGVtczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCmluZGV4IGQyYWRlODczMGMw
NGU3NTUwMmM2YTA0NGEwMTc5YzkzMjZjOWUzYTguLmFhNjFjNDFhZmNlNDVhY2EyMTdiN2Y1ZWY3
ZGRjZTkxZWZiMjhlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRp
ZXMuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgY2hhcioqIHN0
cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cioqPihnX3ZhbHVlX2dldF9ib3hlZChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWYWx1
ZSkpOwogICAgICAgICBpZiAoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zKSB7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3Rl
bXNbaV07ICsraSkKLSAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKHN0
cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXSk7CisgICAgICAgICAgICAgICAgbV9hdmFp
bGFibGVTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgY29uc3QgRXZlbnRWZWN0
b3ImIGV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBw
ZW5kUGlwZWxpbmUuY3BwCmluZGV4IDFhZjBlNTU0ZDgyYmFlNTgxOTNjYWM2OTc1YWE1YTczMWUw
YTM4NWUuLjBiYjIyZDUyNTkwZWRlMjU3OGYwNGYyNmE2MTZmOTE2MGM0NGIzZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5k
UGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RkOjp0dXBs
ZTxHUmVmUHRyPEdzdENhcHM+LCBBcHBlbmRQaXBlbGluZTo6U3RyZWFtVHlwZSwgRmxvYXRTaXpl
PiBBcHBlbmRQaXBlbGkKIAogICAgIGNvbnN0IGNoYXIqIG9yaWdpbmFsTWVkaWFUeXBlID0gY2Fw
c01lZGlhVHlwZShkZW11eGVyU3JjUGFkQ2Fwcyk7CiAgICAgYXV0byYgZ3N0UmVnaXN0cnlTY2Fu
bmVyID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpzaW5nbGV0b24oKTsKLSAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZyB7IG9yaWdpbmFsTWVkaWFUeXBl
IH0pKSB7CisgICAgaWYgKCFnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3Ry
ZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5nLCBTdHJpbmc6OmZy
b21MYXRpbjEob3JpZ2luYWxNZWRpYVR5cGUpKSkgewogICAgICAgICBzdHJlYW1UeXBlID0gU3Ry
ZWFtVHlwZTo6SW52YWxpZDsKICAgICB9IGVsc2UgaWYgKGRvQ2Fwc0hhdmVUeXBlKGRlbXV4ZXJT
cmNQYWRDYXBzLCBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJWCkpIHsKICAgICAgICAgcHJlc2Vu
dGF0aW9uU2l6ZSA9IGdldFZpZGVvUmVzb2x1dGlvbkZyb21DYXBzKGRlbXV4ZXJTcmNQYWRDYXBz
KS52YWx1ZV9vcihGbG9hdFNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFt
ZXJNZWRpYURlc2NyaXB0aW9uLmNwcAppbmRleCBmMWVjNjMxYTk3ZTNiZGIyOWJhNDFiNGNkNWZj
NjZhNjExMDEzNGEwLi4wMWYxMGI3OGU2MTY4OTYxYTIwNTE2ZTFhMTc2NGEyNTM4YTQ3ZmRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAK
QEAgLTc0LDcgKzc0LDcgQEAgQXRvbVN0cmluZyBHU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uOjpl
eHRyYWN0Q29kZWNOYW1lKCkKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkZXNjcmlw
dGlvbihnc3RfcGJfdXRpbHNfZ2V0X2NvZGVjX2Rlc2NyaXB0aW9uKG9yaWdpbmFsQ2Fwcy5nZXQo
KSkpOwotICAgIFN0cmluZyBjb2RlY05hbWUoZGVzY3JpcHRpb24uZ2V0KCkpOworICAgIGF1dG8g
Y29kZWNOYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRlc2NyaXB0aW9uLmdldCgpKTsKIAogICAg
IC8vIFJlcG9ydCAiSC4yNjQgKE1haW4gUHJvZmlsZSkiIGFuZCAiSC4yNjQgKEhpZ2ggUHJvZmls
ZSkiIGp1c3QgYXMgIkguMjY0IiB0byBhbGxvdyBjaGFuZ2VzIGJldHdlZW4gYm90aCB2YXJpYW50
cwogICAgIC8vIGdvIHVubm90aWNlZCB0byB0aGUgU291cmNlQnVmZmVyIGxheWVyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5k
ZXggYjYxNTBkYTQzZDE3ODRmZDU1MjVmYmJmYTliODUyNzBlZTAzMDk5ZC4uNWQ1NDE5ZTg0OGVh
NjZlNDVmNWQ4MzM1YjVjOTYyY2U2NDQ1OWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAg
c2l6ZV90IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTWF4aW11bUJ1ZmZl
clNpemUoKSBjb25zdAogICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0n
KjoxMDBNJwogICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0ndmlkZW86
OTBNLFQ6MTAwMDAwJwogCi0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJNU0VfTUFYX0JV
RkZFUl9TSVpFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RkOjpn
ZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXMgPSBzLnNwbGl0KCcsJyk7CiAg
ICAgICAgICAgICBmb3IgKGNvbnN0IFN0cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zR0xPcGVuR0wuY3BwCmluZGV4IDkxOTYzZDMyOTA5M2UzNmUwNGEyZDlmYWIxYzNmZGFj
MzQ2ZjBhZmYuLmVlNjQzMWFjODBlMTEwZjU0OTljY2VjMWQ1Y2MwYjZiYzVhMzY4ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBFeHRlbnNp
b25zR0xPcGVuR0w6OnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShHQ0dMdWludCBpbmRleCwgR0NH
THVpbnQgZGl2aXMKIFN0cmluZyBFeHRlbnNpb25zR0xPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQog
ewogICAgIEFTU0VSVCghbV91c2VJbmRleGVkR2V0U3RyaW5nKTsKLSAgICByZXR1cm4gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9O
UykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29t
bW9uLmNwcAppbmRleCBlOTIzMjRhY2JmN2U0ZmUwYWFiZTI5MjM3MzQ1MjE0Njg0Y2FlMjljLi4y
ZGM2NDU1YjQ0MjQzMzIxOWQxM2Y5N2I2Mjc3YzgwNzI1ZjU2Nzc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29t
bW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcApAQCAtNzQsOCArNzQsOCBAQCBFeHRlbnNpb25zR0xP
cGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbihHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCogY29udAogICAgICwgbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemUo
ZmFsc2UpCiAgICAgLCBtX3VzZUluZGV4ZWRHZXRTdHJpbmcodXNlSW5kZXhlZEdldFN0cmluZykK
IHsKLSAgICBtX3ZlbmRvciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6
OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKLSAgICBtX3JlbmRlcmVyID0gU3RyaW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7Cisg
ICAgbV92ZW5kb3IgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7CisgICAgbV9yZW5kZXJlciA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KEdMX1JFTkRFUkVSKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdmVuZG9yQ29tcG9uZW50cyA9
IG1fdmVuZG9yLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkuc3BsaXQoJyAnKTsKICAgICBpZiAo
dmVuZG9yQ29tcG9uZW50cy5jb250YWlucygibnZpZGlhIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTEVTLmNwcAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5
Li5lZGFlMTI5MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zR0xPcGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNH
TE9wZW5HTEVTOjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkK
IAogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmco
R0xfRVhURU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5jcHAKaW5kZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1
NDY2YTVhM2U3YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFr
ZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVy
biBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1l
KSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
Q29udGV4dEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBh
YWMyYjczOTdhMTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEz
NGFlNjllZDdlNzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0
QXR0cmlidXRlcy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRl
eHRBdHRyaWJ1dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYg
VVNFKE9QRU5HTF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1
ZTsKIAotICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4
dGVuc2lvbnNTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRl
cy5zdXBwb3J0c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09F
U190ZXh0dXJlX25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1Ymlt
YWdlID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIp
OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFj
MjcyNWQzZDJlMmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJk
NmY2YTFkNzkzZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVy
LmNwcApAQCAtMzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1h
cHBlckZQU0NvdW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQo
MCkKIHsKLSAgICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hP
V19GUFMiKSB9OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAg
ICBtX2Zwc0ludGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9r
KSk7CiAgICAgaWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYy
NDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1
Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVy
Q2FwdHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZp
Y2UpCiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7
CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2
aWNlX2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmco
ZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6
ZnJvbUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dp
dGgoIkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVv
IikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2Fw
dHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1
Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTCiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5v
dXRQdHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0g
ICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVz
dFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBz
ZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8i
KS5yZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNo
ZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcy
Y2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJs
LmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjpp
c29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRp
b25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92
ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVy
aWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0
aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVf
dCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5
NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3Bw
CkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBT
dHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7
Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7
CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhv
c3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRp
dGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFk
ZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1v
dGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90
ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAg
ICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBT
dHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5
ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0
MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xp
cGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0
YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAg
ICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5o
R2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7
CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRs
ZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFz
ZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0
VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9u
UG9saWN5IGZpbGVuYQogICAgICAgICAgICAgLy8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAg
ICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5o
R2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4
aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwg
PSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVt
UGF0aCgpOworICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVt
UGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAg
ICAgICAgICAgaWYgKHRpdGxlKQogICAgICAgICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAg
ICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0
YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0
LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJ
SSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9j
ayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAg
IHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0g
ZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBE
cmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERv
Y3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNl
VVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAg
U3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAg
ICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VS
TFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNmYmUy
NDEyYmJjMzhiY2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIzM2E0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAK
QEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWlu
VGV4dCYgdGV4dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6Oklz
Q2xpcGJvYXJkRm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293
bmVyKSkgewogICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShD
Rl9URVhUKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0
ZXJzIGFzIExhdGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhh
dCB0aGUgcmlnaHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcgeyBz
dGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAgdGV4
dC50ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KGNiRGF0YSkpKTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAg
ICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcgKzg4
OCw3IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdt
ZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JEYXRh
ID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0YSkg
ewogICAgICAgICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9i
YWxMb2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsKKyAg
ICAgICAgICAgICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAg
ICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6Q2xv
c2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChjb250ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
U1NMS2V5R2VuZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMxODBl
ZjdiYjc1ZGE3MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2lu
LmNwcApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1cHBv
cnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJpbmdz
IHNob3VsZCBiZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOworICAg
IHYuYXBwZW5kKCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2Us
IGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2Vk
YWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRj
YjA2ODdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAK
ICAgICBzd2l0Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewog
ICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
Tm9uZSIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VM
b2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7Cisg
ICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0
ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdm
ZGI5YzdhMzU5N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4
MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcg
KzYxLDcgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJp
bmc7CiAgICAgaWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVS
X1RBUkdFVF9BRERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVu
dlZhciB9OworICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0
RW52VmFyKTsKICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewog
ICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGlu
dCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAg
ICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcg
PSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1w
b3J0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5n
dGgpICYmIHBvcnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBT
dHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxl
bmd0aCA9IHN0cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1o
b3N0PSIsIGhvc3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3Ry
aW5nKGFyZyArIGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJv
bUxhdGluMShhcmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKQEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50
KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBp
ZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRT
dHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcg
KyB0YXJnZXRTdHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2
aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0
ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9z
ZXNzaW9uID0gbnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmlu
Zygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBi
ZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdl
YkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBw
CiAgICAgICAgIC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwg
c2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRD
YXBhYmlsaXRpZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShy
ZXF1aXJlZENhcGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0
KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0
Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJl
cXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBj
YXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVx
dWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJp
bGl0aWVzKTsKICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQg
YWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIApAQCAtNzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVl
LT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsK
ICAgICAgICAgICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBu
b3QgYSBKU09OIExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1
bWVudC4KLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RN
YXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpA
QCAtNzQ5LDEzICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkg
ewogICAgICAgICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVz
IGZvdW5kIGluIGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAg
ICAgICB9CiAgICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhl
IHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQg
Zmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAg
ICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZp
cnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogCkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJp
dmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAg
ICB9CiAKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmco
IkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdT
ZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAg
ICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2Vi
ZHJpdmVyLyNuZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNz
aW9ucyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhp
bXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Np
b24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYg
Y2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRj
aCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0
cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNl
QWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AK
IAogICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAg
ICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFs
aWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
TnVsbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRv
IHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5
cGUgIT0gInBhdXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwg
YWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0
JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09O
OjpPYmplY3QmIGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAg
ICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAg
ICAgaWYgKCFrZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVl
LT5hc1N0cmluZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBm
b3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAg
ICAgICAvLyBGSVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQs
NyArMTk5NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpP
YmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRp
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBh
dXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlm
ICghZHVyYXRpb24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlk
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgYWN0aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAw
NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3Qm
IGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9i
amVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1l
bnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlm
aWVyKCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFs
aWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3
ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRl
ck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAt
MjAxNSw3ICsyMDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVs
c2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdp
biA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51
bGxvcHQgfTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIp
OworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
b3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBz
dGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25J
dGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0u
Z2V0VmFsdWUoIngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdl
KCp4VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9u
Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQs
NyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBh
Y3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJ
blJhbmdlKCp5VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcg
KzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUg
PT0gInBvaW50ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0
eXBlOjpQb2ludGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBv
ZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVy
UGFyYW0KICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAg
YXV0byBidXR0b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAg
ICAgIGlmICghYnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8g
YnV0dG9uID0gdW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRv
bikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdi
dXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZh
bGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1v
dXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQs
IEpTT046Ok9iamVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAg
ICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hl
ZWwgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJp
bmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0
aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVgg
PSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAg
ICAgaWYgKCFkZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgu
dmFsdWUoKTsKQEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICAgICAgaWYgKGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVki
X3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpk
ZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEg
PSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0Rh
dGEpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBv
YmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3
OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHBy
b2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2lu
dGVyVHlwZSA9PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9p
bnRlclR5cGU6OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
cGFyYW1ldGVycyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7
CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3Qo
KTsKICAgICBpZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0
Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMg
KzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJ
bnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09
ICJub25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5v
bmU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0
U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9u
IHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNz
aW9uLmdldE9yQ3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5
cGUpOwogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3Qg
bWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRT
b3VyY2UudHlwZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2Uu
cG9pbnRlclR5cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291
cmNlIHBvaW50ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRl
ciB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBh
dXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsK
ICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rp
b24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5j
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcg
KzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lu
cHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRl
bSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9u
SXRlbSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4g
YWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2Jq
ZWN0Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApA
QCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9u
cyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8g
YWN0aW9uc0FycmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlm
ICghYWN0aW9uc0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAn
YWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vy
dmljZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNw
cAppbmRleCBhMDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYw
ZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2Fw
YWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7
CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1h
dGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9i
amVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNv
bnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJ
UiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dz
ZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElS
ICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3Nl
ciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5n
PiB7ICItLWF1dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9s
bGJhcnMgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2
ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VX
aW4uY3BwCmluZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFi
MjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJE
cml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsK
KyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNh
cGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVz
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQ
RS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRl
eCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1Mjdm
ZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9X
ZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0g
ICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0
aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpA
QCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENh
cGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3Qm
IG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAog
ewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIp
OworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJf
cyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7
ICItLWF1dG9tYXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVk
Q2FwYWJpbGl0aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMjI5YTgwMmUyOGI1
ZWI3MTEyODhmNWUzMGMyNjI1MDhhYjJkOWJjLi45ZjZiOGU4YTUxM2I3ODBmZTc3YTEwZTVhN2Vh
N2MwZDAwYzE5ZmMxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0u
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcDoK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9L
ZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5t
bToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRB
bGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpD
b25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0wNC0wOCAgSm9uYXRoYW4gQmVkYXJk
ICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01lcmdlLVF1ZXVlXSBBZGQgcXVldWUg
dHJpZ2dlcmVkIGJ5IGxhYmVsIGFkZGl0aW9uIChGb2xsb3ctdXAgZml4KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRk
NjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1
ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxW
U3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBv
cmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsK
ICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1Rf
VFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFs
LmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBN
b3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdI
YXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2lu
YWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkp
OwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYz
LDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmlu
Z1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3Ry
aW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmln
aW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgp
LT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2lu
YWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBF
WFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9z
c1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAg
U3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9
OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdp
bmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFh
NWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3
ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2lu
Z0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVE
YXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3Rl
bTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyks
IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVD
VF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5
ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5
ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJh
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChp
bnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBh
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1
NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGEx
OTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQp
CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIs
IGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwg
Myk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWls
ZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmlu
ZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFy
YWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVy
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgi
WFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJf
cywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIy
LnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5n
OwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNB
cHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiks
ICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29u
dmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZp
dCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwg
J2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
LCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4
Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxl
bmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1
bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwg
YnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmlu
Z0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUg
Y2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0
KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0
aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxz
ZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVs
bHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0K
IH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
KQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1
Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgp
LCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
QUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUg
Y29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAg
ICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAg
ICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7
CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3Mp
LCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRl
ci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0
cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAg
IGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9z
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2Yg
dGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAg
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwog
ICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVG
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
REVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHko
KTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVy
LmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwog
fQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEy
MzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBi
dWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAg
ICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNU
X0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVy
KTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFs
KQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDAp
LCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVD
VF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAh
PSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFi
YyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNl
cnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRl
cjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWls
ZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRl
cjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAv
LyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0g
YnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFw
cGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21T
dHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5r
VG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
CmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjVi
NjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdU
RiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVT
VChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsK
ICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmlu
ZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNT
RVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCks
ICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2
OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdU
RiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAg
IFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJB
dG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9z
IH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAg
ICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmlu
Z1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEo
MCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhl
YWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3Ry
aW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6
OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAg
IFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcg
dmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9U
UlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4
NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAg
ICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmco
ImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVs
bG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0
MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1Rf
VFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMo
KSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxv
KCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVs
b1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRz
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAg
ICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0
ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRv
ciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0
KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Vi
a2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBv
aW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMs
MTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRD
aGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0g
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJ
SSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9t
TGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1Zp
ZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1Ikhl
bGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJM
LmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3
YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJM
Q29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwog
CiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3Qo
KS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBF
Q1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3Jk
IiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwi
KSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3Vy
bC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiks
IGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJs
LnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3
b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRo
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRo
Q29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1
ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElk
ZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxB
c1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxp
dGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9y
dCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3Jk
QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
OnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8i
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VS
TCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdU
Rl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNy
ZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsg
eyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMz
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0z
ODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCks
IHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAg
VVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZr
ZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEz
MTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwg
InZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2
KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJs
MTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAg
ICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5
MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAg
VVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZr
ZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7Imtl
eTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0s
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMi
X3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90
ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsg
Ij8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwg
eyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVz
dFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/Iiwg
IiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZl
Y3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9z
LCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAg
ICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAg
ICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7
IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAg
IFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAg
ICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7
eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1
MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2My
MDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBA
IC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChX
VEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0g
ICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNl
dChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3Ms
ICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMi
X3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1
cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3
MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RG
LCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxp
Y2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5n
dGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3Ry
aW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVy
YWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJv
bUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3Ry
aW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIp
LCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0
ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0
ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwg
c3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFs
Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBA
IC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7
CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjpl
bXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsK
KyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVD
VF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAg
IEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcp
KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3Rl
ZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJp
bmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRp
bjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFj
ZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91
YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRv
RG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJV
RShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAg
Ly8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBz
cGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAg
IC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdh
eXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5n
IHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2
YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZp
bml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
KS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25s
eSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Iiku
aXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiks
IDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhC
aXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkp
OworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgi
VGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdU
RiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZy
b21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
IiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAw
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlz
dGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAg
ICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFz
SGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBA
IFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2Rl
RXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJp
bmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsg
J2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4
NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0
ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRl
bnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxi
fSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
KTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0
dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJf
cywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
CmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTVi
YjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAg
IAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1j
b25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQg
dGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlz
ZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3Qg
U3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0
YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBG
aWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
CmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhh
YTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3
NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9z
LAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMp
KSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25B
U0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25B
U0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQ
YWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVk
UGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05
NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAo
XGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgo
YykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6
ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUo
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5j
cHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlm
MmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcg
QEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5n
LCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZX
ZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rl
cjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVz
dFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNv
cmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0K
IAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0
NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRh
MDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0Yo
UHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9F
UShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4
LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29t
LnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3
d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5i
bC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNv
bS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82
NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0t
YXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0
LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmlu
ZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFt
UGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJT
VUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxo
b3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGlu
MSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4u
LiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEz
YWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBA
IC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQu
b3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9w
aWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7
IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9Owor
ICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAg
ICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAg
ICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQp
IHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUw
ZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBm
NmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRl
V2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
KSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVm
ZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkp
OwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+
c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkp
OwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVz
dERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZm
ZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZp
bGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFy
c2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2Njhi
NGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJU
ZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBh
cnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRm
MTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMz
JTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1
Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0
ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rpbmcg
bGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgi
bGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2Vz
Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmco
KSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VS
TCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAi
aHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBh
cnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3Ry
aW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08t
ODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMs
IDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9z
dC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQx
JTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkx
Il9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhV
bWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlT
dHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRy
YWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0Rh
dGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAz
M2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNl
VHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFz
ZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBy
ZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAg
IC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyAr
MTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURv
ZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgog
ICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0
YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgs
NyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGlu
Z0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92
ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9y
aWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpA
QCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRo
TWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hv
dWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAg
IC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAq
d2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAi
V2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJh
c2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBz
Il9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFi
YXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlz
ay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAg
ICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0
aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxl
U3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0
NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRh
YmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJl
IHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4K
ICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBm
cm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEw
MmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0x
NDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkK
ICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlh
clFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZF
TFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhp
S3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9U
ZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQ
Nmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgog
ICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVM
TUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJl
Zj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2
cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5j
K2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpB
SDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4
U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhi
eEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9
IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0
ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFm
NGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5t
bQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRT
ZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAg
ICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1Qg
LyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVl
c3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5r
YWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNp
Z25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykg
OiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7
CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNl
bmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJp
bmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygi
ZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgo
KSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0
YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWdu
aW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5T
KFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3Ro
OnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0
aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0
cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5k
KGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0g
a2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4
YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51
bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1Nl
cnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJj
ZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBk
b1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRl
cmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJh
bCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lk
ZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7
CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50
LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBz
b3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhz
b3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJp
bmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09Q
KQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09Q
KTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25D
T0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJl
ZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3Rp
bmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwog
CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxT
dHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsK
QEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
Y29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRv
IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24o
KTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2Nd
IF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7
Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09Q
ICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAh
c3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9u
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAo
ZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0
cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9z
ICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9u
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9y
aWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBF
Q1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25T
aG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZ
ZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAg
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9
LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
NCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5n
IENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8g
U2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBh
IHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4u
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4
cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1v
cmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09P
UFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmll
dyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0
ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFl
OWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRF
U1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25u
ZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0
b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7
eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCks
IFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29u
dGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwg
Wz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0o
VmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19
LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1U
eXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdv
cmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVl
c3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChj
b25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0
UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIy
ZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1
MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDgg
KzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25z
dCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0n
aUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0K
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0
aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBj
b25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBp
ZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1
YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRp
b25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBf
V0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIw
NGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0Njcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29u
dGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQo
KSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpb
TlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5n
KFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZp
ZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTEx
ODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0
ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5Q
YXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNo
b3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5T
U3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5Nzlh
YS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6
KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkph
dmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0
ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFT
UyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBT
dHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRi
NjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3
NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSAr
NDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFk
ZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUi
IH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2Vw
dFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQi
X3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAg
ICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUo
cmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29u
dGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9
CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0
aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1
NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lP
MnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVy
SDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0g
ICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJl
OVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBi
YXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgq
ZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4g
SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJI
enFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1Rq
cjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1
IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2
SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIp
OworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRv
IGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsK
ICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0
VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRl
MTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9sbGRi
L2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNsYXNz
IEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsK
LSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmluZyB7
IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1wbCgp
OwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVtcHR5
U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0gYW5F
bXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1bcOp
IiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3D
qSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1w
bCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2Fw
cHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485565"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457090</attachid>
            <date>2022-04-08 10:07:55 -0700</date>
            <delta_ts>2022-04-08 11:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408100754.patch</filename>
            <type>text/plain</type>
            <size>162374</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBj
MDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFjMTAwMzIy
YzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkg
Y29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICAg
ICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogU3RyaW5n
KCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+
PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5pc29sYXRl
ZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBmZDlmNzhlN2QyMTRlODk5MDhhMDY1
OGFiZGY2ZTk1NzA2OTdmYmI2Li4zMjQyMDkwNjg3Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRkZjYz
YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRl
Q29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAw
KQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21p
bWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcg
eyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCA3YTM2MjYzZmUwMTEzNDQw
ZTU0NTZjMTkyZDlhMTg0NTI5Yzk1Yjk4Li5kNDIwZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThmYzM2
N2U0ZDNhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcApAQCAtNjMxLDcgKzYzMSw3
IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZUdzdFN0cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVsZElk
LCBjb25zdCBHVmFsdWUqIHZhbHVlLCBncG9pCiB7CiAgICAgaWYgKGF1dG8ganNvblZhbHVlID0g
Z3N0U3RydWN0dXJlVmFsdWVUb0pTT04odmFsdWUpKSB7CiAgICAgICAgIGF1dG8qIG9iamVjdCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8SlNPTjo6T2JqZWN0Kj4odXNlckRhdGEpOwotICAgICAgICBvYmpl
Y3QtPnNldFZhbHVlKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpzb25W
YWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpKSwganNvblZhbHVlLT5yZWxl
YXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IGJkNmJlNmY3YTYzMGUzNmNjN2Jm
MTU4NTJiNjBlMjIxYjE2NzI0NzUuLjY3ZDcwY2JjZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQzODEx
NjYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBA
IC0xNzYsNyArMTc2LDcgQEAgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxvb2t1
cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkVsZW1lbnQKICAgICBpZiAoc2hvdWxk
Q2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPT0gQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXI6Olllcykg
ewogICAgICAgICBmb3IgKEdMaXN0KiBmYWN0b3JpZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3JpZXM7
IGZhY3RvcmllcyA9IGdfbGlzdF9uZXh0KGZhY3RvcmllcykpIHsKICAgICAgICAgICAgIGF1dG8q
IGZhY3RvcnkgPSByZWludGVycHJldF9jYXN0PEdzdEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9yaWVz
LT5kYXRhKTsKLSAgICAgICAgICAgIFN0cmluZyBtZXRhZGF0YSB7IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9Owor
ICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfZWxlbWVu
dF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9LTEFT
UykpOwogICAgICAgICAgICAgYXV0byBjb21wb25lbnRzID0gbWV0YWRhdGEuc3BsaXQoJy8nKTsK
ICAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmNvbnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAgICAg
ICAgICAgICAgICAgaXNVc2luZ0hhcmR3YXJlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWJkMzYyOTYyYTQzNTYwODIyMzNj
YjE0YTk5MDdkOTA2MzRhNmRjNy4uMDFmZWZlYTMyZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2OTBm
YmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50VHlwZSYsIE1lZGlhU291cgogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0p
CiB7CiAgICAgbV9zdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKLSAgICBsb2FkKFN0cmluZygibWVk
aWFzdHJlYW06Ly8iKSArIHN0cmVhbS5pZCgpKTsKKyAgICBsb2FkKG1ha2VTdHJpbmcoIm1lZGlh
c3RyZWFtOi8vIiwgc3RyZWFtLmlkKCkpKTsKICAgICBzeW5jT25DbG9jayhmYWxzZSk7CiAKICAg
ICBtX3BsYXllci0+cGxheSgpOwpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAg
ICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwgJmRl
YnVnLm91dFB0cigpKTsKICAgICAgICAgR1NUX0VSUk9SKCJFcnJvciAlZDogJXMgKHVybD0lcyki
LCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CiAKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsKKyAg
ICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdlKTsK
IAogICAgICAgICBlcnJvciA9IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5OwogICAg
ICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVyci5nZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwgR1NU
X1NUUkVBTV9FUlJPUl9DT0RFQ19OT1RfRk9VTkQpCkBAIC0xODg5LDcgKzE4ODksNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBt
ZXNzYWdlKQogICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVy
ZSwgImh0dHAtaGVhZGVycyIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVs
aW5lKCksICJQcm9jZXNzaW5nIEhUVFAgaGVhZGVyczogJSIgR1NUX1BUUl9GT1JNQVQsIHN0cnVj
dHVyZSk7CiAgICAgICAgICAgICBpZiAoY29uc3QgY2hhciogdXJpID0gZ3N0X3N0cnVjdHVyZV9n
ZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVyaSIpKSB7Ci0gICAgICAgICAgICAgICAgVVJMIHVybCB7
IFN0cmluZyB7IHVyaSB9IH07CisgICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJv
bUxhdGluMSh1cmkpIH07CiAgICAgICAgICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKHVybCkpOwogCiAgICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3VybCkg
ewpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNvbmZpZ3VyZURvd25sb2FkQnVmZmVyKEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19vYmpl
Y3Rfc2V0KGVsZW1lbnQsICJ0ZW1wLXRlbXBsYXRlIiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQo
KSwgbnVsbHB0cik7CiAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUmVjb25maWd1
cmVkIGZpbGUgZG93bmxvYWQgdGVtcGxhdGUgZnJvbSAnJXMnIHRvICclcyciLCBvbGREb3dubG9h
ZFRlbXBsYXRlLmdldCgpLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKIAotICAgIFN0cmlu
ZyBuZXdEb3dubG9hZFByZWZpeFBhdGggeyBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpIH07Cisg
ICAgYXV0byBuZXdEb3dubG9hZFByZWZpeFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEobmV3RG93
bmxvYWRUZW1wbGF0ZS5nZXQoKSk7CiAgICAgcHVyZ2VPbGREb3dubG9hZEZpbGVzKG5ld0Rvd25s
b2FkUHJlZml4UGF0aC5yZXBsYWNlKCJYWFhYWFgiLCAiIikpOwogfQogCkBAIC0yNDcwLDExICsy
NDcwLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0
aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhl
IGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2Nh
dGlvbiB0byBpdC4KICAgICAgICAgVVJMIGJhc2VVcmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5ld0xv
Y2F0aW9uKSA/IFVSTCgpIDogbV91cmw7Ci0gICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVy
bCwgU3RyaW5nIHsgbmV3TG9jYXRpb24gfSk7CisgICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFz
ZVVybCwgU3RyaW5nOjpmcm9tTGF0aW4xKG5ld0xvY2F0aW9uKSk7CiAKICAgICAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gcGxheWJpblVybFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGlw
ZWxpbmUuZ2V0KCksICJjdXJyZW50LXVyaSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBudWxs
cHRyKTsKLSAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmcgeyBwbGF5YmluVXJsU3RyLmdl
dCgpIH0gfTsKKyAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocGxh
eWJpblVybFN0ci5nZXQoKSkgfTsKIAogICAgICAgICBpZiAocGxheWJpblVybCA9PSBuZXdVcmwp
IHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlBsYXliaW4gYWxy
ZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9uLiIpOwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9vbCBp
c01lZGlhRGlza0NhY2hlRGlzYWJsZWQoKQogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsKLSAg
ICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tf
Q0FDSEUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVu
digiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKICAgICAgICAgaWYgKCFz
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdHJpcFdoaXRlU3Bh
Y2UoKS5jb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCk7CiAgICAgICAgICAgICByZXN1
bHQgPSAodmFsdWUgPT0gIjEiIHx8IHZhbHVlID09ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIpOwpA
QCAtMzkxOCw3ICszOTE4LDcgQEAgSW5pdERhdGEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpwYXJzZUluaXREYXRhRnJvbVByb3RlY3Rpb25NZXNzYWdlKEdzdE1lc3MKICAgICAgICAgICAg
IEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7CiAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2Vf
cHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRy
KTsKIAotICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0
ZW1JZCB9LCBkYXRhIH0pOworICAgICAgICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nOjpm
cm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtSWQpLCBkYXRhIH0pOwogICAgICAgICAgICAgbV9oYW5k
bGVkUHJvdGVjdGlvbkV2ZW50cy5hZGQoR1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtNDAzOSw3ICs0MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmhhbmRsZVByb3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQpCiAg
ICAgY29uc3QgY2hhciogZXZlbnRLZXlTeXN0ZW1VVUlEID0gbnVsbHB0cjsKICAgICBHc3RCdWZm
ZXIqIGluaXREYXRhID0gbnVsbHB0cjsKICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihl
dmVudCwgJmV2ZW50S2V5U3lzdGVtVVVJRCwgJmluaXREYXRhLCBudWxscHRyKTsKLSAgICBpbml0
aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJRCB9
LCBpbml0RGF0YSB9KTsKKyAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmlu
Zzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbVVVSUQpLCBpbml0RGF0YSB9KTsKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OndhaXRpbmdGb3JLZXkoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDAzZWRhYzhj
OGU5N2JiMWVhYTRiMzNiM2Y0NDU5YWNkYWRmYjk0NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVmNWRm
N2JmOGJjZTVkZWMyZjhkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lci5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXI6OmdldExhbmd1YWdlQ29kZShHc3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2YQog
ewogICAgIFN0cmluZyBsYW5ndWFnZTsKICAgICBpZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdfTEFO
R1VBR0VfQ09ERSwgbGFuZ3VhZ2UpKSB7Ci0gICAgICAgIGxhbmd1YWdlID0gU3RyaW5nIHsgZ3N0
X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkg
fTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRfbGFu
Z3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBH
U1RfREVCVUcoIkNvbnZlcnRlZCB0cmFjayAlZCdzIGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwgbV9p
bmRleCwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSB2
YWx1ZSkgewogICAgICAgICAgICAgdmFsdWUgPSBsYW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEsNyBA
QCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0YWdz
LCBjb25zdCBnY2hhciogdGFnTmFtZSwgUwogICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRhZ1Zh
bHVlOwogICAgIGlmIChnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAmdGFn
VmFsdWUub3V0UHRyKCkpKSB7CiAgICAgICAgIEdTVF9ERUJVRygiVHJhY2sgJWQgZ290ICVzICVz
LiIsIG1faW5kZXgsIHRhZ05hbWUsIHRhZ1ZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBT
dHJpbmdUeXBlIHsgdGFnVmFsdWUuZ2V0KCkgfTsKKyAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBl
IHsgU3RyaW5nOjpmcm9tTGF0aW4xKHRhZ1ZhbHVlLmdldCgpKSB9OwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcAppbmRleCBkN2JlODA1MThlZDY5ZWNlY2Q3MTZmYWIy
MzIzMGY4Yzc2MGI5NmM1Li4zMDVlNTFhZmY3NWM1ZmIwYmEzYWVhZDJhMTU0MzBmMmNhNGY0YzNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcApA
QCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVs
ZW1lbnQoR3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnc3RfcGFkX2FkZF9wcm9iZShzaW5rUGFk
LmdldCgpLCBwcm9iZVR5cGUsIFtdKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3Bv
aW50ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2JlUmV0dXJuIHsKICAgICAgICAgYXV0byBbbW9k
aWZpZWRCdWZmZXIsIG1ldGFdID0gZW5zdXJlVmlkZW9GcmFtZU1ldGFkYXRhKEdTVF9QQURfUFJP
QkVfSU5GT19CVUZGRVIoaW5mbykpOwogICAgICAgICBHU1RfUEFEX1BST0JFX0lORk9fREFUQShp
bmZvKSA9IG1vZGlmaWVkQnVmZmVyOwotICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9LCBzdGQ6
Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUp
KTsKKyAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKSwgc3RkOjptYWtlX3BhaXIo
Z3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpLCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CiAgICAgICAg
IHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogICAgIH0sIGdzdF9lbGVtZW50X2dldF9uYW1lKGVs
ZW1lbnQpLCBnX2ZyZWUpOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBp
ZiAoIW1ldGEpCiAgICAgICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKIAotICAgICAg
ICBTdHJpbmcgZWxlbWVudE5hbWUgeyByZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkg
fTsKKyAgICAgICAgYXV0byBlbGVtZW50TmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVy
cHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkpOwogICAgICAgICBhdXRvIHZhbHVlID0gbWV0YS0+
cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLmdldChlbGVtZW50TmFtZSk7CiAgICAgICAgIG1ldGEtPnBy
aXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoZWxlbWVudE5hbWUsIHN0ZDo6bWFrZV9wYWlyKHZhbHVl
LmZpcnN0LCBnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCkpKTsKICAgICAgICAgcmV0dXJuIEdTVF9Q
QURfUFJPQkVfT0s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBkNjQwNGMxMjBjYThhZGUxMGY3NWViN2I5YjNhZGMyZDVjM2QzOTBhLi45NmRm
Y2ZjMTJjZWM3Y2JjMDRlM2QzY2ZiNTk5ZTU3MzVlMzIzZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lk
IFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMo
KQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFy
PiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7
Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAg
Y29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAj
ZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGQwYWQ2NzJkNzEwOTdjZjkxMmEx
NzMyMjcwNWRmMGVlZDNjMjA4ZTMuLmQ1MTFkYTEwMDE5Y2I0MWQyZTg4NjQ0YzNmM2E5OWI3NzE3
ZjhiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC01OTYsNyArNTk2LDcgQEAgc3RhdGljIGJvb2wgd2ViS2l0V2ViU3JjU2V0RXh0cmFIZWFkZXIo
R1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIAogICAgIEdTVF9ERUJV
RygiQXBwZW5kaW5nIGV4dHJhIGhlYWRlcjogXCIlczogJXNcIiIsIGZpZWxkTmFtZSwgZmllbGRD
b250ZW50LmdldCgpKTsKICAgICBSZXNvdXJjZVJlcXVlc3QqIHJlcXVlc3QgPSBzdGF0aWNfY2Fz
dDxSZXNvdXJjZVJlcXVlc3QqPih1c2VyRGF0YSk7Ci0gICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRl
ckZpZWxkKFN0cmluZyB7IGZpZWxkTmFtZSB9LCBTdHJpbmcgeyBmaWVsZENvbnRlbnQuZ2V0KCkg
fSk7CisgICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbUxhdGluMShm
aWVsZE5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoZmllbGRDb250ZW50LmdldCgpKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTY0NCw3ICs2NDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRX
ZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktp
dFdlYgogICAgIEFTU0VSVChtZW1iZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbiAhPSBtZW1iZXJzLT5z
dG9wUG9zaXRpb24pOwogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJQb3N0aW5nIHRhc2sg
dG8gcmVxdWVzdCBSJXUgJXMgcmVxdWVzdGVkUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCAi
IHN0b3BQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFULCBtZW1iZXJzLT5yZXF1ZXN0TnVtYmVy
LCBwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCksIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uLCBt
ZW1iZXJzLT5zdG9wUG9zaXRpb24pOwotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyBwcml2LT5vcmln
aW5hbFVSSS5kYXRhKCkgfSB9OworICAgIFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocHJp
di0+b3JpZ2luYWxVUkkuZGF0YSgpKSB9OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
dXJsKTsKICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKQEAgLTY1Myw3ICs2NTMs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNy
YywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVy
KG1lbWJlcnMtPnJlZmVycmVyKTsKIAogICAgIGlmIChwcml2LT5odHRwTWV0aG9kLmdldCgpKQot
ICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoU3RyaW5nIHsgcHJpdi0+aHR0cE1ldGhvZC5n
ZXQoKSB9KTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKFN0cmluZzo6ZnJvbUxhdGlu
MShwcml2LT5odHRwTWV0aG9kLmdldCgpKSk7CiAKICNpZiBVU0UoU09VUCkKICAgICAvLyBCeSBk
ZWZhdWx0LCBIVFRQIEFjY2VwdC1FbmNvZGluZyBpcyBkaXNhYmxlZCBoZXJlIGFzIHdlIGRvbid0
CkBAIC02ODEsNyArNjgxLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3Qo
V2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgZm9ybWF0ZWRSYW5nZS5yZXNldChnX3N0cmR1cF9wcmludGYoImJ5dGVz
PSUiIEdfR1VJTlQ2NF9GT1JNQVQgIi0iLCBtZW1iZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbikpOwog
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlJhbmdlIHJlcXVlc3Q6ICVzIiwgZm9ybWF0
ZWRSYW5nZS5nZXQoKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nIHsgZm9ybWF0ZWRSYW5nZS5nZXQoKSB9KTsKKyAgICAg
ICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJp
bmc6OmZyb21MYXRpbjEoZm9ybWF0ZWRSYW5nZS5nZXQoKSkpOwogICAgIH0KICAgICBBU1NFUlQo
bWVtYmVycy0+cmVhZFBvc2l0aW9uID09IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKTsKIApA
QCAtODgxLDcgKzg4MSw3IEBAIGNvbnN0IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJv
dG9jb2xzKEdUeXBlKQogCiBzdGF0aWMgVVJMIGNvbnZlcnRQbGF5YmluVVJJKGNvbnN0IGNoYXIq
IHVyaVN0cmluZykKIHsKLSAgICByZXR1cm4gVVJMIHsgU3RyaW5nIHsgdXJpU3RyaW5nIH0gfTsK
KyAgICByZXR1cm4gVVJMIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaVN0cmluZykgfTsKIH0KIAog
c3RhdGljIGdjaGFyKiB3ZWJLaXRXZWJTcmNHZXRVcmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCmluZGV4IDA0ZWFlMDBjYTU1MzllN2QyZDliMjgzOTVj
ZTlhZTNmNjg3MTIyOWQuLmJjNTM5YTg3NDc4MDI4MTgxM2Y2YWYzMDBhZTJlMDJiNzZhZTYxYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNVGh1bmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcApAQCAtMTIyLDkgKzEyMiw5IEBAIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBDRE1GYWN0b3J5VGh1bmRlcjo6c3VwcG9ydGVkS2V5U3lzdGVtcygpIGNv
bnN0CiAgICAgaWYgKHN1cHBvcnRlZEtleVN5c3RlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0
ZDo6c3RyaW5nIGVtcHR5U3RyaW5nOwogICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBv
cnRlZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0sIGVtcHR5U3Ry
aW5nLmNfc3RyKCkpID09IEVSUk9SX05PTkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0
ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0pOwor
ICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4x
KEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSkpOwogICAgICAgICBp
ZiAob3BlbmNkbV9pc190eXBlX3N1cHBvcnRlZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xl
YXJLZXlLZXlTeXN0ZW0sIGVtcHR5U3RyaW5nLmNfc3RyKCkpID09IEVSUk9SX05PTkUpCi0gICAg
ICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6
OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pOworICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5h
cHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktl
eUtleVN5c3RlbSkpOwogICAgICAgICBHU1RfREVCVUcoIiV6dSBzdXBwb3J0ZWQga2V5IHN5c3Rl
bXMiLCBzdXBwb3J0ZWRLZXlTeXN0ZW1zLnNpemUoKSk7CiAgICAgfTsKICAgICByZXR1cm4gc3Vw
cG9ydGVkS2V5U3lzdGVtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGll
cy5oCmluZGV4IGQyYWRlODczMGMwNGU3NTUwMmM2YTA0NGEwMTc5YzkzMjZjOWUzYTguLmFhNjFj
NDFhZmNlNDVhY2EyMTdiN2Y1ZWY3ZGRjZTkxZWZiMjhlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY29uc3QgY2hhcioqIHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcioqPihnX3ZhbHVlX2dldF9ib3hlZChzdHJlYW1FbmNyeXB0
aW9uQWxsb3dlZFN5c3RlbXNWYWx1ZSkpOwogICAgICAgICBpZiAoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBzdHJlYW1F
bmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV07ICsraSkKLSAgICAgICAgICAgICAgICBtX2F2YWls
YWJsZVN5c3RlbXMuYXBwZW5kKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXSk7Cisg
ICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRp
bjEoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKSk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgY29uc3QgRXZlbnRWZWN0b3ImIGV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRz
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCmluZGV4IDFhZjBlNTU0ZDgyYmFl
NTgxOTNjYWM2OTc1YWE1YTczMWUwYTM4NWUuLjBiYjIyZDUyNTkwZWRlMjU3OGYwNGYyNmE2MTZm
OTE2MGM0NGIzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0zMjAs
NyArMzIwLDcgQEAgc3RkOjp0dXBsZTxHUmVmUHRyPEdzdENhcHM+LCBBcHBlbmRQaXBlbGluZTo6
U3RyZWFtVHlwZSwgRmxvYXRTaXplPiBBcHBlbmRQaXBlbGkKIAogICAgIGNvbnN0IGNoYXIqIG9y
aWdpbmFsTWVkaWFUeXBlID0gY2Fwc01lZGlhVHlwZShkZW11eGVyU3JjUGFkQ2Fwcyk7CiAgICAg
YXV0byYgZ3N0UmVnaXN0cnlTY2FubmVyID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpz
aW5nbGV0b24oKTsKLSAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVk
KEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmlu
ZyB7IG9yaWdpbmFsTWVkaWFUeXBlIH0pKSB7CisgICAgaWYgKCFnc3RSZWdpc3RyeVNjYW5uZXIu
aXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246
OkRlY29kaW5nLCBTdHJpbmc6OmZyb21MYXRpbjEob3JpZ2luYWxNZWRpYVR5cGUpKSkgewogICAg
ICAgICBzdHJlYW1UeXBlID0gU3RyZWFtVHlwZTo6SW52YWxpZDsKICAgICB9IGVsc2UgaWYgKGRv
Q2Fwc0hhdmVUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzLCBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJ
WCkpIHsKICAgICAgICAgcHJlc2VudGF0aW9uU2l6ZSA9IGdldFZpZGVvUmVzb2x1dGlvbkZyb21D
YXBzKGRlbXV4ZXJTcmNQYWRDYXBzKS52YWx1ZV9vcihGbG9hdFNpemUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1l
ck1lZGlhRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcAppbmRleCBmMWVjNjMx
YTk3ZTNiZGIyOWJhNDFiNGNkNWZjNjZhNjExMDEzNGEwLi4wMWYxMGI3OGU2MTY4OTYxYTIwNTE2
ZTFhMTc2NGEyNTM4YTQ3ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVy
TWVkaWFEZXNjcmlwdGlvbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgQXRvbVN0cmluZyBHU3RyZWFt
ZXJNZWRpYURlc2NyaXB0aW9uOjpleHRyYWN0Q29kZWNOYW1lKCkKICAgICB9CiAKICAgICBHVW5p
cXVlUHRyPGdjaGFyPiBkZXNjcmlwdGlvbihnc3RfcGJfdXRpbHNfZ2V0X2NvZGVjX2Rlc2NyaXB0
aW9uKG9yaWdpbmFsQ2Fwcy5nZXQoKSkpOwotICAgIFN0cmluZyBjb2RlY05hbWUoZGVzY3JpcHRp
b24uZ2V0KCkpOworICAgIGF1dG8gY29kZWNOYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRlc2Ny
aXB0aW9uLmdldCgpKTsKIAogICAgIC8vIFJlcG9ydCAiSC4yNjQgKE1haW4gUHJvZmlsZSkiIGFu
ZCAiSC4yNjQgKEhpZ2ggUHJvZmlsZSkiIGp1c3QgYXMgIkguMjY0IiB0byBhbGxvdyBjaGFuZ2Vz
IGJldHdlZW4gYm90aCB2YXJpYW50cwogICAgIC8vIGdvIHVubm90aWNlZCB0byB0aGUgU291cmNl
QnVmZmVyIGxheWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYjYxNTBkYTQzZDE3ODRmZDU1MjVmYmJmYTliODUyNzBl
ZTAzMDk5ZC4uNWQ1NDE5ZTg0OGVhNjZlNDVmNWQ4MzM1YjVjOTYyY2U2NDQ1OWQ1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3Bw
CkBAIC0yOTUsNyArMjk1LDcgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
OnBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdAogICAgICAgICAvLyAgICAgICAgICAg
TVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJwogICAgICAgICAvLyAgICAgICAgICAgTVNFX01B
WF9CVUZGRVJfU0laRT0ndmlkZW86OTBNLFQ6MTAwMDAwJwogCi0gICAgICAgIFN0cmluZyBzKHN0
ZDo6Z2V0ZW52KCJNU0VfTUFYX0JVRkZFUl9TSVpFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJp
bmc6OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CiAgICAg
ICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGVudHJp
ZXMgPSBzLnNwbGl0KCcsJyk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IFN0cmluZyYgZW50cnkg
OiBlbnRyaWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCmluZGV4IDkxOTYzZDMyOTA5
M2UzNmUwNGEyZDlmYWIxYzNmZGFjMzQ2ZjBhZmYuLmVlNjQzMWFjODBlMTEwZjU0OTljY2VjMWQ1
Y2MwYjZiYzVhMzY4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwCkBAIC0yMjUsNyAr
MjI1LDcgQEAgdm9pZCBFeHRlbnNpb25zR0xPcGVuR0w6OnZlcnRleEF0dHJpYkRpdmlzb3JBTkdM
RShHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2aXMKIFN0cmluZyBFeHRlbnNpb25zR0xPcGVu
R0w6OmdldEV4dGVuc2lvbnMoKQogewogICAgIEFTU0VSVCghbV91c2VJbmRleGVkR2V0U3RyaW5n
KTsKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9O
UykpKTsKIH0KIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAppbmRleCBlOTIzMjRhY2JmN2U0ZmUwYWFiZTI5
MjM3MzQ1MjE0Njg0Y2FlMjljLi4yZGM2NDU1YjQ0MjQzMzIxOWQxM2Y5N2I2Mjc3YzgwNzI1ZjU2
Nzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcApAQCAtNzQsOCAr
NzQsOCBAQCBFeHRlbnNpb25zR0xPcGVuR0xDb21tb246OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1v
bihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udAogICAgICwgbV9yZXF1aXJlc1Jlc3RyaWN0
ZWRNYXhpbXVtVGV4dHVyZVNpemUoZmFsc2UpCiAgICAgLCBtX3VzZUluZGV4ZWRHZXRTdHJpbmco
dXNlSW5kZXhlZEdldFN0cmluZykKIHsKLSAgICBtX3ZlbmRvciA9IFN0cmluZyhyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKLSAgICBtX3Jl
bmRlcmVyID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJp
bmcoR0xfUkVOREVSRVIpKSk7CisgICAgbV92ZW5kb3IgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7Cisg
ICAgbV9yZW5kZXJlciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRFUkVSKSkpOwogCiAgICAgVmVjdG9yPFN0cmlu
Zz4gdmVuZG9yQ29tcG9uZW50cyA9IG1fdmVuZG9yLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCku
c3BsaXQoJyAnKTsKICAgICBpZiAodmVuZG9yQ29tcG9uZW50cy5jb250YWlucygibnZpZGlhIikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUx
M2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBk
MDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEs
NyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRF
eHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmco
R0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQz
NTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEz
NDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51
bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NH
TGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdhMTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2
NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdlNzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0
cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29u
c3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgYXR0cmlidXRlcy5p
c0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmlu
ZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05T
KSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykp
KTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNT
dHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJlX25wb3QiKTsKICAgICAgICAgYXR0cmlidXRl
cy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xf
RVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJlMmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYu
LjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkzZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291
bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVy
RlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0NvdW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDAp
CiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAgICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50
IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25t
ZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikpOwogICAg
IGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0ludGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52
aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAgaWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTcz
OTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEw
Myw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVm
UHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
IHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0No
YXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmlu
ZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBk
ZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwog
ICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYg
IWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNs
YXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgz
MDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEz
YWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdl
cjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCks
ICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9i
amVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0
KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0
aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9y
ZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAg
ICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlm
aWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIw
ZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmlj
YXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUlu
Zm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlm
aWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRp
b25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2Nl
cnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJ
bmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1
aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThl
ZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJk
ZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1
cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihD
VVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJy
b3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lf
c3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9y
SG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFu
ZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdv
cmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1Jl
Y2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFk
ZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRk
aXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwog
ICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVB
ZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNw
cAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUx
ZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcg
KzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRh
OjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVE
RUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAg
Ly8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpm
cm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xv
YmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3
ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0
YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAgLy8gZmlsZW5h
bWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBk
YXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsK
LSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3Ry
aW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6
ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVT
eXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAgICAgICAgICAg
ICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3Ry
aW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYg
KFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUp
KSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBT
dHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAg
ICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01l
ZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250
YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQog
ewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3Ry
KCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAg
ICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZEln
bm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2
ODVlZDk5MzY0NjlmZDBhNDNmYmUyNDEyYmJjMzhiY2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZi
ZDIyOGUxZjA3MjQwOGQ2NGIzM2E0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6
OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGlj
eSwgc3RkOgogICAgIGlmICg6OklzQ2xpcGJvYXJkRm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYm
IDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewogICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9
IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRo
aXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJzIGFzIExhdGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdp
bmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0aGUgcmlnaHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0
ZXh0LnRleHQgPSBTdHJpbmcgeyBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEp
KSB9OworICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpKTsKICAgICAgICAgICAgIEdsb2JhbFVubG9j
ayhjYkRhdGEpOwogICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtODg4LDcgKzg4OCw3IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0
ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAg
ICAgICAgICBIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAg
ICAgICAgICAgaWYgKGNiRGF0YSkgewogICAgICAgICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyBzdHIoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJv
bUxhdGluMShidWZmZXIpOwogICAgICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwog
ICAgICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUz
NDM0YTU2MDEyMjA0YWQ0MWMxODBlZjdiYjc1ZGE3MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUz
NjJhMDVhZTY0YzdkODg1YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB2b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewog
ICAgIC8vIEZJWE1FOiBTdHJpbmdzIHNob3VsZCBiZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVu
ZCgiSGlnaCBHcmFkZSIpOworICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3Ry
aW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29u
c3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5k
ZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdl
ZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZl
ci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgs
MTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJh
dGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2Fk
U3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25l
Il9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJu
IFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAg
ICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApp
bmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4
N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVy
U2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQog
ICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZh
ciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAgIHRhcmdldFN0cmlu
ZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJp
bmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAx
IDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpA
QCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICBw
b3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0
ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAi
LS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAg
ICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgp
OwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBp
ZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0g
ICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgpOworICAgICAgICAg
ICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2Vi
RHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAg
ICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBT
dHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZy
b21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0t
dGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0
U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAgICAgICAgICAgdGFy
Z2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcg
QEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3Io
SlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVj
dGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBj
cmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJp
bmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZl
Y3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMo
Y29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJp
bGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVj
dC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgp
OwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJp
bGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGlu
dmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9m
IHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBj
YXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmls
aXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0
aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBh
bHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBh
YmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNP
Tjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RN
YXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1h
dGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVy
cm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2gg
aXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxp
dGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpP
YmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxp
dGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmly
c3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
IkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAg
ICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRl
ZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJp
bGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNo
Q2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RN
YXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9y
PENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25z
dCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xp
c3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5n
KCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Np
b25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBX
ZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1l
dGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRw
czovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Np
b24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0g
bnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90
Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJz
LCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZl
Y3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0
aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBT
dHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3Rh
dGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0
aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVl
KCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpP
YmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlw
ZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFs
aWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3Ry
aW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURv
d24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwog
ICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsx
OTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihj
b25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5
cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFs
dWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24i
X3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAg
ICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlk
IGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUg
Y29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2lu
dGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBz
CiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0
aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRp
b25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFs
dWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92
ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAg
ICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAg
ICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Np
b246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQp
IHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOwor
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3Jp
Z2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBh
Y3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1l
bnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAg
ICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpU
eXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRv
IHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9
IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXgp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVl
KCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVB
Y3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlm
IChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1
dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBp
ZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRl
ciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5
LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQog
ICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50
ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25z
dCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9p
bnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFs
dWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5n
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
ICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUp
OwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93
biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDks
NyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBl
ID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpT
Y3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NX
aGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChh
dXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAg
ICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUs
IElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBm
b3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFj
dGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZh
bHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBp
ZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1
ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBh
cmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKIAogICAg
IGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwog
ICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBw
YXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3Qm
IGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0
ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVsc2UgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBh
Y3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNl
cXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4g
b2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1
ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24K
ICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0g
SW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGlu
IGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2Ui
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQg
PSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9u
Pj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0
byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0
U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlu
cHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBz
ZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNo
IGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBv
aW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRv
ZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRj
aCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdl
dEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBv
ciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVz
ZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0
b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAg
ICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7
CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsK
KyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBz
ZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMs
IEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXko
ImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxp
ZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJf
cykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRy
aXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9X
ZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5
YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzks
NyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmls
aXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENh
cGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9
IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5n
KCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAg
IHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBS
ZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5h
cnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJ
T05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFy
eSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lP
Tl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1
bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmls
aXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
d2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3
NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJk
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBA
IC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENh
cGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAg
ICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3Ry
aW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAg
ICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93
cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2
ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYz
NjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzks
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmlu
ZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51
eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1
cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpT
T046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0g
U3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0g
U3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVu
dHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJv
d3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJP
cHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBhMjI5YTgwMmUyOGI1ZWI3MTEyODhmNWUzMGMyNjI1MDhhYjJkOWJjLi45ZjZiOGU4
YTUxM2I3ODBmZTc3YTEwZTVhN2VhN2MwZDAwYzE5ZmMxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGlu
ZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0
IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3
ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFt
ZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0w
NC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01l
cmdlLVF1ZXVlXSBBZGQgcXVldWUgdHJpZ2dlcmVkIGJ5IGxhYmVsIGFkZGl0aW9uIChGb2xsb3ct
dXAgZml4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJk
M2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9z
c1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25l
UmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29w
eUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQog
ewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3Jp
Z2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAg
IEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJp
bmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENv
cHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJl
ZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsK
ICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJl
YWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgw
LDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3Ry
aW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdI
YXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmlu
ZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5h
bCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7
CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlm
MzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0
N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmls
ZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0
ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZp
bGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0
aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7
CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJu
b3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQs
IHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSgh
bWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51
bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4u
N2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVT
VChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGlu
dGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBM
b3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNF
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
PihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4
N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBl
bmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8g
VGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAg
ICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBw
ZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJz
KGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAx
MjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsx
MzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6
c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmlu
ZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0
aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwg
IiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZi
dWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAv
LyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRv
IDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5j
YXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3
ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3
b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVj
ZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBh
Y2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAx
KSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBi
dWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVy
LnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMg
bm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5n
KTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBz
aG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBT
dHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNp
emluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVz
dWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAg
ICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIp
LCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2ln
bmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0
eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmlu
Zyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8v
IENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNp
dHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAg
LTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBF
WFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBh
Y2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAg
ICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAg
ICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0
eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikK
QEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAg
ICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsK
ICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBF
WFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5z
aHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAg
ICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBz
dGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
U3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMi
KTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVu
ZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0g
U3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVy
MSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIu
YXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0
cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVy
Mik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBi
dWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3Ry
aW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMi
KSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmlu
Zyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVF
KGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQw
YjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAs
MTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJ
Q2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0
cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0
ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7Cisg
ICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0
cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFi
YjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2Fl
YTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBz
dHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRv
bVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVy
YWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcg
eyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5n
VmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5n
IH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgz
MjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2Nl
MGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmll
dy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1w
dHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVt
cHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFy
YWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8i
X3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0
ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51
bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051
bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdX
aXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhD
aGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhD
aGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJz
LmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0
ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0p
KTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3Mp
OwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMg
PSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0
cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdo
Jyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1Rf
RVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQi
KTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBv
aW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0
ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJh
dG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRp
bmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lz
QWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikp
LmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29h
IikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLw
n5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5n
KCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0
cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNB
bGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nh
c3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEz
ODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBA
QCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RS
VUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAi
aHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBr
dXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBs
ZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1
cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFz
c3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRl
eC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0
bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJh
Z21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1
cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50
Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRl
VVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMg
VVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwg
VVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3
dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4
Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNl
cm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5o
dG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRl
VVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJm
aWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8v
L2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5h
bWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMs
NyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykK
IHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAg
VVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEy
IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7
CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJM
RGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsg
eyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBV
UkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIs
ICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAg
ICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZh
bDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMs
IHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkx
IiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwg
eyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1
cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12
YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAi
dmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIp
LCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwx
OCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4
IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5
MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9
LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVj
dG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJs
MjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTky
MCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7Imtl
eTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAg
ICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJf
cyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/
dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rl
c3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAg
IAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVz
dCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Pz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsg
IiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90
ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsg
Ij8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsi
IiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RW
ZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZl
Y3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RW
ZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAK
aW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2Nj
YmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBN
YXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0s
IFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7
ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7
CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJf
cyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdU
Rjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBT
dHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEw
ZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAs
MTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVY
UEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJv
bUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25z
dHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24g
c3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3Ry
aW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3Ry
bGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAg
RVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBF
Q1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNU
KFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFy
dHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5n
IGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRo
Q2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhl
bGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dp
dGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0
YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3Ry
aW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0
cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9
PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3Vs
dCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBU
RVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAg
VEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5n
KCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcyku
dG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgm
b2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJs
ZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQ
RUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2Vl
ZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAx
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91Ymxl
KCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVY
UEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJu
IGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3
aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJu
IDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBu
dW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2sp
OwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBh
cyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0g
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7
CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
VGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3Qi
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJf
cykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhT
dGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3Mp
Lmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAg
IEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYs
MTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZy
b21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9
IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0
cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwg
MikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJf
cykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAK
IFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRl
bXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJf
cyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxT
RShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgp
OwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRF
U1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJp
bmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFM
U0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7
CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNl
Njk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZl
NTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcg
QEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVz
dFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7
LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7
CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsK
ICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRl
cm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQy
Mjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNw
cApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEo
IlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgi
VGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBG
aWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMg
YSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlz
IHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1v
bml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhl
IHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVz
dCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMx
MTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmll
bGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIp
CiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAg
ICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21t
ZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAot
ICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0
cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21M
YXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9t
TGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNo
b3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQ
YXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAg
ICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3Rl
IH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAg
ICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5
NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5n
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rpbmcu
Y3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91Ymxl
KQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RS
VUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywg
JldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7
CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6
OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJp
bmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdS
ZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNT
dWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQu
LjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcs
MzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1Njgw
M1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1
ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYw
YW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5j
b20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIx
MjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3Mp
KTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAg
IEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmco
YmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOE
w5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJl
eGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOF
w4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2Nk
ZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzcz
MTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2Us
IE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29y
ZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUp
LCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJp
bnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJl
Y29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMg
PSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJv
bUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNv
cmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1
bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVm
ZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4x
YjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyAr
NDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBh
dXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmlu
Zygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7
CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0Yo
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdG
aWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNP
ZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAg
IEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRp
Z3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Zzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0g
U3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkp
OwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250
ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUx
MjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2Qz
ZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyAr
MTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rpbmcp
CiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iN
IiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4
JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMz
JTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0g
ICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6
VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNw
YWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFj
ZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7
Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJf
cywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAg
ICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5
Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyAr
MTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rpbmcp
CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAg
Y2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0
RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVu
Y29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0g
dXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJM
KG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7
IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRo
Il9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3Bh
dGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3Nz
Oi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVE
MCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAl
QjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRj
NGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0
ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcg
Kzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0
aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20g
Ym90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3Zl
IHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVh
bCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwg
YmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERl
bGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2Fz
ZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERh
dGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwi
KTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4
U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNr
ZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3
ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAv
LyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lu
cyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20g
ZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERh
dGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
V2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3
ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8g
YW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ug
c2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24g
c2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJh
c2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAv
LyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRv
ZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBk
YXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGEx
YjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZh
ZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5
UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0ht
SEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVp
UkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAi
NjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0
MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAi
aGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVu
Y29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdr
cWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJl
dGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NL
ejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAg
ICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9J
YTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5j
Mk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0Iv
djF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBh
dXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7
CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0
aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNi
MTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNp
Z25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2ln
bmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJl
cXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsK
IAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhy
ZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91
bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
dW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9r
ZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2ln
blVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWdu
aW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkp
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBz
aWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNl
X3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0
X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRT
dHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpA
QCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERl
Y29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2Vu
VmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3Rh
cnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1
Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5
MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIz
ICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGlu
Z0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFll
cyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07
Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNP
T1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBE
b1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwg
c291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5h
dGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1Nh
bWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBl
Y3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7
CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJj
ZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChz
b3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYg
KHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1i
ZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVz
dGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAg
ICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOwor
ICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAg
ICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9z
LCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAg
ICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhl
YWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFs
aXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZl
cjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciog
c291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhb
W1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2lu
IikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsK
LSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGlu
YXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBk
ZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAi
KTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNP
T1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsK
KyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGlu
YXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVp
cmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0
U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03
NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChj
b25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
bnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBk
ZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1p
c3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQog
ewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBo
YXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGly
ZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9l
c24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
ICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wg
aXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5k
ZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4
NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAg
LTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkK
ICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZl
cihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1h
aW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFp
bkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJl
Y2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlh
bGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJl
c3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9
IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVj
dG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxv
d2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNo
Il9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5k
ZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRl
MmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFt
ZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29u
c3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9
ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+
PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+Igog
IjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsy
OTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwv
aHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRh
NWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1
ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51
Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VS
TCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3Vy
bCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250
ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2
Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQz
Njc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAq
YW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNl
bGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0
ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyks
IFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJm
ZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5
Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0
LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdl
YlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAy
OTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3
YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQ
U2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRI
YW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAg
ICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewot
ICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJD
b25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFj
Y2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVw
Z3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3Ms
ICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywg
d2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRU
UFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25I
YW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+
IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUv
SVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4
NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVM
V2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0
T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsK
KyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBk
ZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsK
ICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEs
NyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJi
a1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpK
NFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201
YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1Ukcy
NlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBp
NDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1
Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBl
bUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVL
ZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIv
VG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4
Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2Nl
NDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWlu
LmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEz
ICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RT
dW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAg
IFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBs
ID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9
OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFu
RW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44
Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0lt
cGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0
ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485578"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457093</attachid>
            <date>2022-04-08 10:51:46 -0700</date>
            <delta_ts>2022-04-08 11:02:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408105145.patch</filename>
            <type>text/plain</type>
            <size>164227</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBj
MDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFjMTAwMzIy
YzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkg
Y29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICAg
ICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogU3RyaW5n
KCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+
PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5pc29sYXRl
ZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKaW5kZXggYzVk
ZTFiNjhiNWNjY2E0YjhjOTg1M2IzMzhiNDk4MjE4ZTE0Mzg5YS4uYjI4YTVhNGU4ZjZmNzY1MDIx
OWU3MjIwYWYwYjQ3NDhlMjAxN2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcApAQCAtMTg2LDEzICsxODYsMTMg
QEAgYm9vbCBBTkdMRVdlYktpdEJyaWRnZTo6Y29tcGlsZVNoYWRlclNvdXJjZShjb25zdCBjaGFy
KiBzaGFkZXJTb3VyY2UsIEFOR0xFU2hhZGUKICAgICBpZiAoIXZhbGlkYXRlU3VjY2Vzcykgewog
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbG9nID0gc2g6OkdldEluZm9Mb2coY29tcGlsZXIp
OwogICAgICAgICBpZiAobG9nLmxlbmd0aCgpKQotICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZyB7IGxvZy5jX3N0cigpIH07CisgICAgICAgICAgICBzaGFkZXJWYWxpZGF0
aW9uTG9nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZy5jX3N0cigpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvYmplY3RDb2RlID0gc2g6
OkdldE9iamVjdENvZGUoY29tcGlsZXIpOwogICAgIGlmIChvYmplY3RDb2RlLmxlbmd0aCgpKQot
ICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nIHsgb2JqZWN0Q29kZS5jX3N0
cigpIH07CisgICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0Q29kZS5jX3N0cigpKTsKICAgICAKICAgICBpZiAoIWdldFN5bWJvbEluZm8oY29t
cGlsZXIsIFNIQURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUsIHN5bWJvbHMpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBmZDlmNzhlN2QyMTRlODk5MDhhMDY1OGFiZGY2ZTk1NzA2OTdmYmI2Li4zMjQy
MDkwNjg3Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRkZjYzYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBB
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21DYXBzKCkK
IAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAwKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4g
Y29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkpOwot
ICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcgeyBjb2RlYy5nZXQoKSB9OworICAgIGNv
bmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21MYXRpbjEoY29kZWMuZ2V0KCkpOwogI2Vu
ZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbJl0gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
Q29tbW9uLmNwcAppbmRleCA3YTM2MjYzZmUwMTEzNDQwZTU0NTZjMTkyZDlhMTg0NTI5Yzk1Yjk4
Li5kNDIwZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThmYzM2N2U0ZDNhOTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyQ29tbW9uLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJz
ZUdzdFN0cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBn
cG9pCiB7CiAgICAgaWYgKGF1dG8ganNvblZhbHVlID0gZ3N0U3RydWN0dXJlVmFsdWVUb0pTT04o
dmFsdWUpKSB7CiAgICAgICAgIGF1dG8qIG9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNPTjo6
T2JqZWN0Kj4odXNlckRhdGEpOwotICAgICAgICBvYmplY3QtPnNldFZhbHVlKFN0cmluZyB7IGdf
cXVhcmtfdG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7
CisgICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9f
c3RyaW5nKGZpZWxkSWQpKSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAg
ICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXIuY3BwCmluZGV4IGJkNmJlNmY3YTYzMGUzNmNjN2JmMTU4NTJiNjBlMjIxYjE2NzI0NzUuLjY3
ZDcwY2JjZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQzODExNjYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgR1N0cmVh
bWVyUmVnaXN0cnlTY2FubmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXI6OkVsZW1lbnQKICAgICBpZiAoc2hvdWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIg
PT0gQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXI6OlllcykgewogICAgICAgICBmb3IgKEdMaXN0KiBm
YWN0b3JpZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3JpZXM7IGZhY3RvcmllcyA9IGdfbGlzdF9uZXh0
KGZhY3RvcmllcykpIHsKICAgICAgICAgICAgIGF1dG8qIGZhY3RvcnkgPSByZWludGVycHJldF9j
YXN0PEdzdEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9yaWVzLT5kYXRhKTsKLSAgICAgICAgICAgIFN0
cmluZyBtZXRhZGF0YSB7IGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3Rvcnks
IEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9OworICAgICAgICAgICAgYXV0byBtZXRhZGF0
YSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShm
YWN0b3J5LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9LTEFTUykpOwogICAgICAgICAgICAgYXV0byBj
b21wb25lbnRzID0gbWV0YWRhdGEuc3BsaXQoJy8nKTsKICAgICAgICAgICAgIGlmIChjb21wb25l
bnRzLmNvbnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAgICAgICAgICAgICAgICAgaXNVc2luZ0hhcmR3
YXJlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggYWJkMzYyOTYyYTQzNTYwODIyMzNjYjE0YTk5MDdkOTA2MzRhNmRjNy4uMDFm
ZWZlYTMyZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2OTBmYmQxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBVUkwmLCBjb25zdCBD
b250ZW50VHlwZSYsIE1lZGlhU291cgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgbV9zdHJlYW1Qcml2YXRl
ID0gJnN0cmVhbTsKLSAgICBsb2FkKFN0cmluZygibWVkaWFzdHJlYW06Ly8iKSArIHN0cmVhbS5p
ZCgpKTsKKyAgICBsb2FkKG1ha2VTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIiwgc3RyZWFtLmlkKCkp
KTsKICAgICBzeW5jT25DbG9jayhmYWxzZSk7CiAKICAgICBtX3BsYXllci0+cGxheSgpOwpAQCAt
MTczNSw3ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2Vf
ZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0cigpKTsKICAgICAgICAg
R1NUX0VSUk9SKCJFcnJvciAlZDogJXMgKHVybD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2Fn
ZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgbV9lcnJvck1lc3Nh
Z2UgPSBTdHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsKKyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdlKTsKIAogICAgICAgICBlcnJvciA9IE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5OwogICAgICAgICBpZiAoZ19lcnJvcl9tYXRjaGVz
KGVyci5nZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwgR1NUX1NUUkVBTV9FUlJPUl9DT0RFQ19OT1Rf
Rk9VTkQpCkBAIC0xODg5LDcgKzE4ODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBlbHNlIGlm
IChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImh0dHAtaGVhZGVycyIpKSB7CiAg
ICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJQcm9jZXNzaW5nIEhUVFAg
aGVhZGVyczogJSIgR1NUX1BUUl9GT1JNQVQsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICBpZiAo
Y29uc3QgY2hhciogdXJpID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVy
aSIpKSB7Ci0gICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZyB7IHVyaSB9IH07CisgICAg
ICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMSh1cmkpIH07CiAgICAgICAg
ICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogCiAg
ICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3VybCkgewpAQCAtMjE2Niw3ICsyMTY2LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbmZpZ3VyZURvd25sb2FkQnVmZmVy
KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ0ZW1wLXRl
bXBsYXRlIiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbnVsbHB0cik7CiAgICAgR1NUX0RF
QlVHX09CSkVDVChwaXBlbGluZSgpLCAiUmVjb25maWd1cmVkIGZpbGUgZG93bmxvYWQgdGVtcGxh
dGUgZnJvbSAnJXMnIHRvICclcyciLCBvbGREb3dubG9hZFRlbXBsYXRlLmdldCgpLCBuZXdEb3du
bG9hZFRlbXBsYXRlLmdldCgpKTsKIAotICAgIFN0cmluZyBuZXdEb3dubG9hZFByZWZpeFBhdGgg
eyBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpIH07CisgICAgYXV0byBuZXdEb3dubG9hZFByZWZp
eFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEobmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSk7CiAg
ICAgcHVyZ2VPbGREb3dubG9hZEZpbGVzKG5ld0Rvd25sb2FkUHJlZml4UGF0aC5yZXBsYWNlKCJY
WFhYWFgiLCAiIikpOwogfQogCkBAIC0yNDcwLDExICsyNDcwLDExIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdo
LiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAg
ICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KICAgICAgICAgVVJM
IGJhc2VVcmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5ld0xvY2F0aW9uKSA/IFVSTCgpIDogbV91cmw7
Ci0gICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nIHsgbmV3TG9jYXRpb24g
fSk7CisgICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nOjpmcm9tTGF0aW4x
KG5ld0xvY2F0aW9uKSk7CiAKICAgICAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gcGxheWJpblVy
bFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGlwZWxpbmUuZ2V0KCksICJjdXJyZW50LXVy
aSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBudWxscHRyKTsKLSAgICAgICAgVVJMIHBsYXli
aW5VcmwgeyBTdHJpbmcgeyBwbGF5YmluVXJsU3RyLmdldCgpIH0gfTsKKyAgICAgICAgVVJMIHBs
YXliaW5VcmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocGxheWJpblVybFN0ci5nZXQoKSkgfTsKIAog
ICAgICAgICBpZiAocGxheWJpblVybCA9PSBuZXdVcmwpIHsKICAgICAgICAgICAgIEdTVF9ERUJV
R19PQkpFQ1QocGlwZWxpbmUoKSwgIlBsYXliaW4gYWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9u
LiIpOwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9vbCBpc01lZGlhRGlza0NhY2hlRGlzYWJsZWQo
KQogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRl
bnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FDSEUiKSk7CisgICAgICAgIGF1dG8g
cyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVE
SUFfRElTS19DQUNIRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAg
ICAgU3RyaW5nIHZhbHVlID0gcy5zdHJpcFdoaXRlU3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNhc2VX
aXRob3V0TG9jYWxlKCk7CiAgICAgICAgICAgICByZXN1bHQgPSAodmFsdWUgPT0gIjEiIHx8IHZh
bHVlID09ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIpOwpAQCAtMzkxOCw3ICszOTE4LDcgQEAgSW5p
dERhdGEgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXJzZUluaXREYXRhRnJvbVByb3Rl
Y3Rpb25NZXNzYWdlKEdzdE1lc3MKICAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxw
dHI7CiAgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwg
JmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKIAotICAgICAgICAgICAgaW5pdERh
dGEuYXBwZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1JZCB9LCBkYXRhIH0pOworICAgICAg
ICAgICAgaW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVt
SWQpLCBkYXRhIH0pOwogICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy5hZGQo
R1NUX0VWRU5UX1NFUU5VTShldmVudC5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDAz
OSw3ICs0MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVBy
b3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQpCiAgICAgY29uc3QgY2hhciogZXZlbnRLZXlT
eXN0ZW1VVUlEID0gbnVsbHB0cjsKICAgICBHc3RCdWZmZXIqIGluaXREYXRhID0gbnVsbHB0cjsK
ICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudCwgJmV2ZW50S2V5U3lzdGVtVVVJ
RCwgJmluaXREYXRhLCBudWxscHRyKTsKLSAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJl
ZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJRCB9LCBpbml0RGF0YSB9KTsKKyAgICBpbml0
aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5
c3RlbVVVSUQpLCBpbml0RGF0YSB9KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OndhaXRpbmdGb3JLZXkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDAzZWRhYzhjOGU5N2JiMWVhYTRiMzNiM2Y0NDU5YWNk
YWRmYjk0NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVmNWRmN2JmOGJjZTVkZWMyZjhkOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1By
aXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3ICsx
OTUsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldExhbmd1YWdlQ29kZShH
c3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2YQogewogICAgIFN0cmluZyBsYW5ndWFnZTsK
ICAgICBpZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSwgbGFuZ3VhZ2UpKSB7
Ci0gICAgICAgIGxhbmd1YWdlID0gU3RyaW5nIHsgZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9p
c29fNjM5XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkgfTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFu
Z3VhZ2UudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBHU1RfREVCVUcoIkNvbnZlcnRlZCB0cmFj
ayAlZCdzIGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwgbV9pbmRleCwgbGFuZ3VhZ2UudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSB2YWx1ZSkgewogICAgICAgICAgICAgdmFs
dWUgPSBsYW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0YWdzLCBjb25zdCBnY2hhciogdGFnTmFtZSwg
UwogICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRhZ1ZhbHVlOwogICAgIGlmIChnc3RfdGFnX2xp
c3RfZ2V0X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAmdGFnVmFsdWUub3V0UHRyKCkpKSB7CiAgICAg
ICAgIEdTVF9ERUJVRygiVHJhY2sgJWQgZ290ICVzICVzLiIsIG1faW5kZXgsIHRhZ05hbWUsIHRh
Z1ZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgdGFnVmFsdWUuZ2V0
KCkgfTsKKyAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHRh
Z1ZhbHVlLmdldCgpKSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNw
cAppbmRleCBkN2JlODA1MThlZDY5ZWNlY2Q3MTZmYWIyMzIzMGY4Yzc2MGI5NmM1Li4zMDVlNTFh
ZmY3NWM1ZmIwYmEzYWVhZDJhMTU0MzBmMmNhNGY0YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQg
d2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVudCogZWxlbWVu
dCkKICAgICBnc3RfcGFkX2FkZF9wcm9iZShzaW5rUGFkLmdldCgpLCBwcm9iZVR5cGUsIFtdKEdz
dFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IEdzdFBh
ZFByb2JlUmV0dXJuIHsKICAgICAgICAgYXV0byBbbW9kaWZpZWRCdWZmZXIsIG1ldGFdID0gZW5z
dXJlVmlkZW9GcmFtZU1ldGFkYXRhKEdTVF9QQURfUFJPQkVfSU5GT19CVUZGRVIoaW5mbykpOwog
ICAgICAgICBHU1RfUEFEX1BST0JFX0lORk9fREFUQShpbmZvKSA9IG1vZGlmaWVkQnVmZmVyOwot
ICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZyB7IHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9LCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRf
dGltZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKKyAgICAgICAgbWV0YS0+cHJpdi0+
cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4odXNlckRhdGEpKSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgp
LCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09L
OwogICAgIH0sIGdzdF9lbGVtZW50X2dldF9uYW1lKGVsZW1lbnQpLCBnX2ZyZWUpOwogCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVu
dChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBpZiAoIW1ldGEpCiAgICAgICAgICAgICBy
ZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKIAotICAgICAgICBTdHJpbmcgZWxlbWVudE5hbWUgeyBy
ZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkgfTsKKyAgICAgICAgYXV0byBlbGVtZW50
TmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpOwogICAgICAgICBhdXRvIHZhbHVlID0gbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLmdl
dChlbGVtZW50TmFtZSk7CiAgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQo
ZWxlbWVudE5hbWUsIHN0ZDo6bWFrZV9wYWlyKHZhbHVlLmZpcnN0LCBnc3RfdXRpbF9nZXRfdGlt
ZXN0YW1wKCkpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1By
aXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBkNjQwNGMxMjBjYThh
ZGUxMGY3NWViN2I5YjNhZGMyZDVjM2QzOTBhLi45NmRmY2ZjMTJjZWM3Y2JjMDRlM2QzY2ZiNTk5
ZTU3MzVlMzIzZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJ
T04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNf
Y2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2Rl
YyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0
cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5U
aHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwCmluZGV4IGQwYWQ2NzJkNzEwOTdjZjkxMmExNzMyMjcwNWRmMGVlZDNjMjA4ZTMuLmQ1
MTFkYTEwMDE5Y2I0MWQyZTg4NjQ0YzNmM2E5OWI3NzE3ZjhiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgc3RhdGlj
IGJvb2wgd2ViS2l0V2ViU3JjU2V0RXh0cmFIZWFkZXIoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdW
YWx1ZSogdmFsdWUsIGdwb2kKIAogICAgIEdTVF9ERUJVRygiQXBwZW5kaW5nIGV4dHJhIGhlYWRl
cjogXCIlczogJXNcIiIsIGZpZWxkTmFtZSwgZmllbGRDb250ZW50LmdldCgpKTsKICAgICBSZXNv
dXJjZVJlcXVlc3QqIHJlcXVlc3QgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZVJlcXVlc3QqPih1c2Vy
RGF0YSk7Ci0gICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZyB7IGZpZWxkTmFt
ZSB9LCBTdHJpbmcgeyBmaWVsZENvbnRlbnQuZ2V0KCkgfSk7CisgICAgcmVxdWVzdC0+c2V0SFRU
UEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZE5hbWUpLCBTdHJpbmc6OmZyb21M
YXRpbjEoZmllbGRDb250ZW50LmdldCgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY0
NCw3ICs2NDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRX
ZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgIEFTU0VSVChtZW1iZXJz
LT5yZXF1ZXN0ZWRQb3NpdGlvbiAhPSBtZW1iZXJzLT5zdG9wUG9zaXRpb24pOwogCiAgICAgR1NU
X0RFQlVHX09CSkVDVChzcmMsICJQb3N0aW5nIHRhc2sgdG8gcmVxdWVzdCBSJXUgJXMgcmVxdWVz
dGVkUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCAiIHN0b3BQb3NpdGlvbj0lIiBHX0dVSU5U
NjRfRk9STUFULCBtZW1iZXJzLT5yZXF1ZXN0TnVtYmVyLCBwcml2LT5vcmlnaW5hbFVSSS5kYXRh
KCksIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uLCBtZW1iZXJzLT5zdG9wUG9zaXRpb24pOwot
ICAgIFVSTCB1cmwgeyBTdHJpbmcgeyBwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkgfSB9OworICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpKSB9
OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEFs
bG93Q29va2llcyh0cnVlKTsKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRX
ZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktp
dFdlYgogICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKG1lbWJlcnMtPnJlZmVycmVyKTsKIAog
ICAgIGlmIChwcml2LT5odHRwTWV0aG9kLmdldCgpKQotICAgICAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QoU3RyaW5nIHsgcHJpdi0+aHR0cE1ldGhvZC5nZXQoKSB9KTsKKyAgICAgICAgcmVxdWVz
dC5zZXRIVFRQTWV0aG9kKFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5odHRwTWV0aG9kLmdldCgp
KSk7CiAKICNpZiBVU0UoU09VUCkKICAgICAvLyBCeSBkZWZhdWx0LCBIVFRQIEFjY2VwdC1FbmNv
ZGluZyBpcyBkaXNhYmxlZCBoZXJlIGFzIHdlIGRvbid0CkBAIC02ODEsNyArNjgxLDcgQEAgc3Rh
dGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFN
dXRleExvY2tlcjxXZWJLaXRXZWIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZm9ybWF0ZWRS
YW5nZS5yZXNldChnX3N0cmR1cF9wcmludGYoImJ5dGVzPSUiIEdfR1VJTlQ2NF9GT1JNQVQgIi0i
LCBtZW1iZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbikpOwogICAgICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlJhbmdlIHJlcXVlc3Q6ICVzIiwgZm9ybWF0ZWRSYW5nZS5nZXQoKSk7Ci0gICAgICAg
IHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5n
IHsgZm9ybWF0ZWRSYW5nZS5nZXQoKSB9KTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmc6OmZyb21MYXRpbjEoZm9ybWF0ZWRS
YW5nZS5nZXQoKSkpOwogICAgIH0KICAgICBBU1NFUlQobWVtYmVycy0+cmVhZFBvc2l0aW9uID09
IG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKTsKIApAQCAtODgxLDcgKzg4MSw3IEBAIGNvbnN0
IGdjaGFyKiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogCiBzdGF0aWMg
VVJMIGNvbnZlcnRQbGF5YmluVVJJKGNvbnN0IGNoYXIqIHVyaVN0cmluZykKIHsKLSAgICByZXR1
cm4gVVJMIHsgU3RyaW5nIHsgdXJpU3RyaW5nIH0gfTsKKyAgICByZXR1cm4gVVJMIHsgU3RyaW5n
Ojpmcm9tTGF0aW4xKHVyaVN0cmluZykgfTsKIH0KIAogc3RhdGljIGdjaGFyKiB3ZWJLaXRXZWJT
cmNHZXRVcmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3Bw
CmluZGV4IDA0ZWFlMDBjYTU1MzllN2QyZDliMjgzOTVjZTlhZTNmNjg3MTIyOWQuLmJjNTM5YTg3
NDc4MDI4MTgxM2Y2YWYzMDBhZTJlMDJiNzZhZTYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVy
LmNwcApAQCAtMTIyLDkgKzEyMiw5IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBDRE1GYWN0b3J5
VGh1bmRlcjo6c3VwcG9ydGVkS2V5U3lzdGVtcygpIGNvbnN0CiAgICAgaWYgKHN1cHBvcnRlZEtl
eVN5c3RlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGVtcHR5U3RyaW5nOwog
ICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBvcnRlZChHU3RyZWFtZXJFTUVVdGlsaXRp
ZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0sIGVtcHR5U3RyaW5nLmNfc3RyKCkpID09IEVSUk9SX05P
TkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVV
dGlsaXRpZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0pOworICAgICAgICAgICAgc3VwcG9ydGVkS2V5
U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKEdTdHJlYW1lckVNRVV0aWxpdGllczo6
c19XaWRldmluZUtleVN5c3RlbSkpOwogICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBv
cnRlZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0sIGVtcHR5U3Ry
aW5nLmNfc3RyKCkpID09IEVSUk9SX05PTkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0
ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pOwor
ICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4x
KEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSkpOwogICAgICAgICBH
U1RfREVCVUcoIiV6dSBzdXBwb3J0ZWQga2V5IHN5c3RlbXMiLCBzdXBwb3J0ZWRLZXlTeXN0ZW1z
LnNpemUoKSk7CiAgICAgfTsKICAgICByZXR1cm4gc3VwcG9ydGVkS2V5U3lzdGVtczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0
cmVhbWVyRU1FVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCmluZGV4IGQyYWRlODczMGMwNGU3
NTUwMmM2YTA0NGEwMTc5YzkzMjZjOWUzYTguLmFhNjFjNDFhZmNlNDVhY2EyMTdiN2Y1ZWY3ZGRj
ZTkxZWZiMjhlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgY2hhcioqIHN0cmVh
bUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcioq
PihnX3ZhbHVlX2dldF9ib3hlZChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWYWx1ZSkp
OwogICAgICAgICBpZiAoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zKSB7CiAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNb
aV07ICsraSkKLSAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKHN0cmVh
bUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXSk7CisgICAgICAgICAgICAgICAgbV9hdmFpbGFi
bGVTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoc3RyZWFtRW5jcnlwdGlvbkFsbG93
ZWRTeXN0ZW1zW2ldKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgY29uc3QgRXZlbnRWZWN0b3Im
IGV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5k
UGlwZWxpbmUuY3BwCmluZGV4IDFhZjBlNTU0ZDgyYmFlNTgxOTNjYWM2OTc1YWE1YTczMWUwYTM4
NWUuLjBiYjIyZDUyNTkwZWRlMjU3OGYwNGYyNmE2MTZmOTE2MGM0NGIzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlw
ZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RkOjp0dXBsZTxH
UmVmUHRyPEdzdENhcHM+LCBBcHBlbmRQaXBlbGluZTo6U3RyZWFtVHlwZSwgRmxvYXRTaXplPiBB
cHBlbmRQaXBlbGkKIAogICAgIGNvbnN0IGNoYXIqIG9yaWdpbmFsTWVkaWFUeXBlID0gY2Fwc01l
ZGlhVHlwZShkZW11eGVyU3JjUGFkQ2Fwcyk7CiAgICAgYXV0byYgZ3N0UmVnaXN0cnlTY2FubmVy
ID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpzaW5nbGV0b24oKTsKLSAgICBpZiAoIWdz
dFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
cjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZyB7IG9yaWdpbmFsTWVkaWFUeXBlIH0p
KSB7CisgICAgaWYgKCFnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5nLCBTdHJpbmc6OmZyb21M
YXRpbjEob3JpZ2luYWxNZWRpYVR5cGUpKSkgewogICAgICAgICBzdHJlYW1UeXBlID0gU3RyZWFt
VHlwZTo6SW52YWxpZDsKICAgICB9IGVsc2UgaWYgKGRvQ2Fwc0hhdmVUeXBlKGRlbXV4ZXJTcmNQ
YWRDYXBzLCBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJWCkpIHsKICAgICAgICAgcHJlc2VudGF0
aW9uU2l6ZSA9IGdldFZpZGVvUmVzb2x1dGlvbkZyb21DYXBzKGRlbXV4ZXJTcmNQYWRDYXBzKS52
YWx1ZV9vcihGbG9hdFNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJN
ZWRpYURlc2NyaXB0aW9uLmNwcAppbmRleCBmMWVjNjMxYTk3ZTNiZGIyOWJhNDFiNGNkNWZjNjZh
NjExMDEzNGEwLi4wMWYxMGI3OGU2MTY4OTYxYTIwNTE2ZTFhMTc2NGEyNTM4YTQ3ZmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKQEAg
LTc0LDcgKzc0LDcgQEAgQXRvbVN0cmluZyBHU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uOjpleHRy
YWN0Q29kZWNOYW1lKCkKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkZXNjcmlwdGlv
bihnc3RfcGJfdXRpbHNfZ2V0X2NvZGVjX2Rlc2NyaXB0aW9uKG9yaWdpbmFsQ2Fwcy5nZXQoKSkp
OwotICAgIFN0cmluZyBjb2RlY05hbWUoZGVzY3JpcHRpb24uZ2V0KCkpOworICAgIGF1dG8gY29k
ZWNOYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRlc2NyaXB0aW9uLmdldCgpKTsKIAogICAgIC8v
IFJlcG9ydCAiSC4yNjQgKE1haW4gUHJvZmlsZSkiIGFuZCAiSC4yNjQgKEhpZ2ggUHJvZmlsZSki
IGp1c3QgYXMgIkguMjY0IiB0byBhbGxvdyBjaGFuZ2VzIGJldHdlZW4gYm90aCB2YXJpYW50cwog
ICAgIC8vIGdvIHVubm90aWNlZCB0byB0aGUgU291cmNlQnVmZmVyIGxheWVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
YjYxNTBkYTQzZDE3ODRmZDU1MjVmYmJmYTliODUyNzBlZTAzMDk5ZC4uNWQ1NDE5ZTg0OGVhNjZl
NDVmNWQ4MzM1YjVjOTYyY2U2NDQ1OWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgc2l6
ZV90IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTWF4aW11bUJ1ZmZlclNp
emUoKSBjb25zdAogICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjox
MDBNJwogICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0ndmlkZW86OTBN
LFQ6MTAwMDAwJwogCi0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJNU0VfTUFYX0JVRkZF
Ul9TSVpFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RkOjpnZXRl
bnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXMgPSBzLnNwbGl0KCcsJyk7CiAgICAg
ICAgICAgICBmb3IgKGNvbnN0IFN0cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3Bl
bkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0wuY3BwCmluZGV4IDkxOTYzZDMyOTA5M2UzNmUwNGEyZDlmYWIxYzNmZGFjMzQ2
ZjBhZmYuLmVlNjQzMWFjODBlMTEwZjU0OTljY2VjMWQ1Y2MwYjZiYzVhMzY4ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zR0xPcGVuR0wuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBFeHRlbnNpb25z
R0xPcGVuR0w6OnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShHQ0dMdWludCBpbmRleCwgR0NHTHVp
bnQgZGl2aXMKIFN0cmluZyBFeHRlbnNpb25zR0xPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogewog
ICAgIEFTU0VSVCghbV91c2VJbmRleGVkR2V0U3RyaW5nKTsKLSAgICByZXR1cm4gU3RyaW5nKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykp
KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9u
LmNwcAppbmRleCBlOTIzMjRhY2JmN2U0ZmUwYWFiZTI5MjM3MzQ1MjE0Njg0Y2FlMjljLi4yZGM2
NDU1YjQ0MjQzMzIxOWQxM2Y5N2I2Mjc3YzgwNzI1ZjU2Nzc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMQ29tbW9uLmNwcApAQCAtNzQsOCArNzQsOCBAQCBFeHRlbnNpb25zR0xPcGVu
R0xDb21tb246OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbihHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCogY29udAogICAgICwgbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemUoZmFs
c2UpCiAgICAgLCBtX3VzZUluZGV4ZWRHZXRTdHJpbmcodXNlSW5kZXhlZEdldFN0cmluZykKIHsK
LSAgICBtX3ZlbmRvciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6Omds
R2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKLSAgICBtX3JlbmRlcmVyID0gU3RyaW5nKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CisgICAg
bV92ZW5kb3IgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oOjpnbEdldFN0cmluZyhHTF9WRU5ET1IpKSk7CisgICAgbV9yZW5kZXJlciA9IFN0cmluZzo6
ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X1JFTkRFUkVSKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdmVuZG9yQ29tcG9uZW50cyA9IG1f
dmVuZG9yLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkuc3BsaXQoJyAnKTsKICAgICBpZiAodmVu
ZG9yQ29tcG9uZW50cy5jb250YWlucygibnZpZGlhIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TEVTLmNwcAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5l
ZGFlMTI5MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9w
ZW5HTEVTOjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAog
U3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1
cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
RVhURU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHAKaW5kZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2
YTVhM2U3YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNv
bnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29u
dGV4dEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMy
YjczOTdhMTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFl
NjllZDdlNzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0
cmlidXRlcy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRB
dHRyaWJ1dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNF
KE9QRU5HTF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsK
IAotICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVu
c2lvbnNTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5z
dXBwb3J0c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190
ZXh0dXJlX25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdl
ID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwog
I2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcy
NWQzZDJlMmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2
YTFkNzkzZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNw
cApAQCAtMzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBl
ckZQU0NvdW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkK
IHsKLSAgICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19G
UFMiKSB9OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBt
X2Zwc0ludGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7
CiAgICAgaWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0
MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2Ew
ODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2Fw
dHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2Up
CiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAg
ICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNl
X2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2
aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJv
bUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgo
IkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3
MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdT
dHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVT
CiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQ
dHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAg
U3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBh
dGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNz
aW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5y
ZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNr
IHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAK
aW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3
NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNw
cApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29s
YXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25F
cnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJp
ZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZp
Y2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZp
Y2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBz
aXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNk
Yi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBA
IC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJp
bmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0g
ICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9
CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3Qp
CkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlv
bmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJT
aXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVB
ZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAg
ICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJp
bmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYy
YmIxOTU0ZTZjNjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUz
MDJmNjEwZWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9PcGVuU1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25z
dCBWZWN0b3I8dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewot
ICAgIHJldHVybiBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxz
Q2lwaGVyTmFtZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJ
UEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9j
aXBoZXIoc3NsKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2
Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2
MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRV
dGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0
YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBm
aWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZv
cm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAg
Y2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwp
KTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAg
ICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAg
ICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVk
aXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURh
dGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kg
ZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAg
Y2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwp
KTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShk
YXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6
ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7
CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0
cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAg
ICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAg
ICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0
KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERh
dGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQK
ICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3Jl
LmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9
IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhH
bG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsK
QEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRh
TWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQq
IGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYg
cHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2ln
bmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsK
ICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMz
OGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQw
LDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0
ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9h
cmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7
CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQp
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMg
TGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSBy
aWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRh
KSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNs
b3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6Okdl
dENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAg
ICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAg
ICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAg
ICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBi
b2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNv
bnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NM
S2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlH
ZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVk
YTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBA
IC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5
U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxk
IGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBl
bmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxl
bmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3Qg
VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIy
ZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3
aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2Fz
ZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJh
dGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVh
Z2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2Ez
NTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYy
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBA
QCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBV
U0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAg
ICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VU
X0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07
CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIp
OwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAg
IGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRy
aXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAg
cHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJ
VF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
ZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYg
cG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZy
b21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0g
c3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9Iiwg
aG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJn
ICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
IApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlsw
XSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAg
ICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3Ry
bmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5p
c051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdl
dFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZp
bmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAK
ICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24g
PSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNz
aW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ug
b2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAg
ICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhl
IHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxp
dGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVk
Q2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQg
Y2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxp
dGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENh
cGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMp
OwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNN
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBA
IC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJy
YXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAg
ICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpT
T04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50Lgot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlz
IGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDks
MTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAg
ICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxp
dGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQg
aW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0K
ICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0
IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBt
YXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAo
IWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRj
aCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9
CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAog
ICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVk
IHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24o
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKn
OC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIv
I25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVt
YmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQ
dHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmls
aXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJG
YWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAg
YXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICgh
ZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBw
YXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEz
LDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlw
ZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAi
cGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
dHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24g
aXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUg
PSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRv
IGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAo
IWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1p
c3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3Ry
aW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkg
dXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8v
IEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0
LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYg
YWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVy
YXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJh
dGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAg
c3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9u
SXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0g
b3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0g
b3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7
CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIg
ZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVt
ZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcg
KzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAo
b3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9p
bnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBi
b29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFj
dGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1
ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2Uo
KnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9p
bnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBv
aW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50
ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQog
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1
dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYg
KCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0
dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24g
PSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicg
aXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9y
IHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0
b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rp
b24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQs
IEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVl
QXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAo
IWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgp
OwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBp
ZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsK
ICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZh
bHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFs
aWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJh
bWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFt
ZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBh
cmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIx
NzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1Bv
aW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBl
ID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlw
ZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFt
ZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlv
bj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBh
dXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAg
IGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwx
MyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0
aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUi
KQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAg
ICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmco
ImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcg
aXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0
T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAg
ICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBp
bnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50
eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVy
VHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFj
dGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9p
bnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0
aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlm
ICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1
ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rp
b25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0
aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4
LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0
cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25z
QXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rp
b25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4
IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFh
ZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIv
Z3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dl
YkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFi
aWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRp
ZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAg
LTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBh
YmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBt
YXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsK
LSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Vi
a2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOwor
ICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJr
aXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsK
ICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0t
YXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9
IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAK
aW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNj
YWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93
aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
OwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0
aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2
NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNl
MmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dl
YkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZl
clNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNh
cGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0
V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUs
NyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0
eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hl
ZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0
b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmls
aXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyMjlhODAyZTI4YjVlYjcxMTI4
OGY1ZTMwYzI2MjUwOGFiMmQ5YmMuLjlmNmI4ZThhNTEzYjc4MGZlNzdhMTBlNWE3ZWE3YzBkMDBj
MTlmYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21M
YXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToK
KyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAg
ICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
cjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIEFkZCBxdWV1ZSB0cmlnZ2Vy
ZWQgYnkgbGFiZWwgYWRkaXRpb24gKEZvbGxvdy11cCBmaXgpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4
YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJh
YjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcp
CiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwp
OwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEy
MzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNv
cHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgp
KTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0
cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3
b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAg
RVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVm
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7
Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09u
ZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJW
T3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9O
VUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcg
c3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmlt
cGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2
NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3
IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkK
IHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFw
cGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxl
RGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVj
NTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4
ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRi
OWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4
MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERl
ZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
CiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMo
IiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsK
ICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVp
bGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWls
ZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2
ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAg
c3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSks
IGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkK
IHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAn
QycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFC
QyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmco
JmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9z
KSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRo
ZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRo
ZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7
CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkg
KyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUs
ICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5
ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRl
ciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0
eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAg
ICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAz
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAt
MTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7
CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxk
ZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50
IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0
cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJp
bmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
X3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmlu
ZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFj
aXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRl
ci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5
LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJp
bmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3Ry
aW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJp
bmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQ
RUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJp
bmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwg
c3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAt
MjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1Us
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Iiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpA
QCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAg
RVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmlu
ZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7
CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBh
Y2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNl
cnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9
PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0g
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3Qg
YWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21T
dHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIx
MjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXgg
YTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1
ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJp
bmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwg
U3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
KCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFM
U0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIp
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7
CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUx
MWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQy
LDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJp
bmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5n
IHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJp
bmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAot
ICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmlu
ZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBz
dHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZT
dHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5i
YWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3
IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHko
KTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5n
IHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0
aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmll
d1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NF
RUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8i
KSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykp
OwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVY
UEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0
MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0p
KTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1w
dHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8i
KTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyho
ZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAg
LTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3Ig
PSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcp
OwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtp
dCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNv
ZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJl
Z2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBU
RVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3Rl
cnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUko
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxB
U0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEo
IvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJp
bmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkp
LmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmlu
ZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQz
MTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1
Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBF
WFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3Ry
aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4
MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFt
ZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3Vy
bC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJs
LnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5x
dWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25l
bnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7
CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmll
cigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5n
KQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1
cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewog
ICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
YXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxE
YXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJM
KCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyAr
Mzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAg
ICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9z
KTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkx
PXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZl
Y3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwx
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVy
bDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJs
MTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAg
ICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1
MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0
VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIg
e3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwy
Il9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAg
ICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAi
Il9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJs
MTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFs
MSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2
YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwz
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5
MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTks
IHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAi
dGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywg
IiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwg
dXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0
ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9y
MjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7
IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcy
OCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9z
IH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1
cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwg
dXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8i
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
MTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVy
bDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwg
dXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5
NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVh
MDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5
ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0
b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsK
LSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9z
KTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYz
Il9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWly
LnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3Ry
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5k
ZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3
NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmlu
Z0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsK
ICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0
ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmlu
Z0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwg
c3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlz
OEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcg
KzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBT
dHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUo
c3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpz
dHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5n
OwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExp
dGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAg
ICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsK
IAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWls
IGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdu
b3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFy
YW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0
dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBz
dWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Iiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJl
cnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmco
InN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJf
cykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
Ojpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFz
aCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmlu
ZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5n
MS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkp
OwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChX
VEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVD
aGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJp
bmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdi
JyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0Yzhl
YzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAg
ICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5T
dGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhm
ZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXgg
OWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDli
MDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEo
IlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZp
bGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25p
dG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXgg
NzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdl
MzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAg
VEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAg
ICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAot
ICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9u
QVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVv
dGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29t
bWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNv
bW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5R
dW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1
LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3Ms
CiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3Ms
Ci0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRl
eCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVh
ODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNU
KEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFu
ZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6
OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNv
ZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxl
VmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5
ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNU
KEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4
ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZj
YmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNT
dWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmlu
Zyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihT
dHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20u
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4u
dGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3
LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3
LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEu
dHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJp
bmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJy
NC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2Rm
LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGly
ZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxv
Y2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21h
aW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOk
w7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQ
RUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNo
RGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4u
YTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4
ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAg
c25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVz
dC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0
b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUg
fTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAg
ICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAg
ICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAg
ICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJm
NzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1
ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwog
fQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwg
Y3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAg
QVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkg
PT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6
ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91
cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0
RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMy
ZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAl
OUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDov
L2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJz
VmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEo
U3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEi
KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZs
YXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRw
Oi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCks
ICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Qv
P3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywg
JnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklT
Ty04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEi
KTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAs
IDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/
Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3Ms
IGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsK
ICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMp
LCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygp
LCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VU
cmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlk
MjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2Vy
VGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0
YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0
aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5k
IERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBA
QCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4
aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgs
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFi
YXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBp
bmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0
YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQs
NyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5n
RW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3Rp
bGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0
YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwi
KTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4
U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNr
ZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3
ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRl
ciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZy
b20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRh
YmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06
OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1
cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBA
IC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hl
bkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5
IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8v
IFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhl
IERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQz
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hh
bGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3
NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsx
NDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJt
aUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95
aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lN
Rk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0Jv
VVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmpt
VEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2
YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1J
SUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFV
RUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0
SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1s
TUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6
alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1
cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIK
LSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1Jr
djlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0
RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpp
bmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgw
MmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0y
ODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNy
ZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAv
MS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6
ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rv
a2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMy
MCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3Jl
dFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1
ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVl
c3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZv
aWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0
eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5W
ZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVu
Z3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9
IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5k
YmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNz
IElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lk
ZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAs
IElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVy
U2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291
cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3Rp
bmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1
c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNP
T1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3Vy
Y2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50
LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAg
ICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9z
LCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAg
IGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsK
KyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBv
bGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25S
ZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBI
VFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywg
SFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQy
Nyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBj
aGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBi
b29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0
cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAo
c291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRl
c3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291
cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9z
ICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVF
KHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0
IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0s
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAg
IC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4K
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBi
ZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEg
c3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBh
bmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJl
ZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJW
aWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2Fi
MTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2
aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24p
IHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250
ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsK
KyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5
cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewog
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8
Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRl
bnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3Ms
ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2Ny
aXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNo
YXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0
LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1Njdm
NzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2Zi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDgg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIg
cGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUu
aHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1l
JyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1
dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVb
XSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIK
ICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3
ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJM
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29w
eVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVu
dUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsK
ICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3Rl
Ym9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBh
YnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQo
KSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1
YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJM
KQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1l
bnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcg
KnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNh
ZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwg
KilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJh
bWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0
cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyht
ZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMw
ZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBA
QCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndl
YnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAg
ICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUo
cmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAor
ICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0
KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVu
Z3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYz
Myw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRl
KCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VV
K3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0
alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcv
VysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3Zq
WkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4
TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERl
Y29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVk
Q2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2Vy
dmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5
L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkx
c3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAg
ImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNn
dGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAg
InFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2Rl
ZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJl
dHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRi
L2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIv
bWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4u
YzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBs
ZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0
cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAg
ICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAg
ICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcg
eyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3Ry
aW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07Cisg
ICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAg
ICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAK
ICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5v
XHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457097</attachid>
            <date>2022-04-08 11:02:15 -0700</date>
            <delta_ts>2022-04-08 13:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408110214.patch</filename>
            <type>text/plain</type>
            <size>166801</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBj
MDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFjMTAwMzIy
YzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkg
Y29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICAg
ICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogU3RyaW5n
KCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+
PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5pc29sYXRl
ZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKaW5kZXggYzVk
ZTFiNjhiNWNjY2E0YjhjOTg1M2IzMzhiNDk4MjE4ZTE0Mzg5YS4uYjI4YTVhNGU4ZjZmNzY1MDIx
OWU3MjIwYWYwYjQ3NDhlMjAxN2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcApAQCAtMTg2LDEzICsxODYsMTMg
QEAgYm9vbCBBTkdMRVdlYktpdEJyaWRnZTo6Y29tcGlsZVNoYWRlclNvdXJjZShjb25zdCBjaGFy
KiBzaGFkZXJTb3VyY2UsIEFOR0xFU2hhZGUKICAgICBpZiAoIXZhbGlkYXRlU3VjY2Vzcykgewog
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbG9nID0gc2g6OkdldEluZm9Mb2coY29tcGlsZXIp
OwogICAgICAgICBpZiAobG9nLmxlbmd0aCgpKQotICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZyB7IGxvZy5jX3N0cigpIH07CisgICAgICAgICAgICBzaGFkZXJWYWxpZGF0
aW9uTG9nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZy5jX3N0cigpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvYmplY3RDb2RlID0gc2g6
OkdldE9iamVjdENvZGUoY29tcGlsZXIpOwogICAgIGlmIChvYmplY3RDb2RlLmxlbmd0aCgpKQot
ICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nIHsgb2JqZWN0Q29kZS5jX3N0
cigpIH07CisgICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0Q29kZS5jX3N0cigpKTsKICAgICAKICAgICBpZiAoIWdldFN5bWJvbEluZm8oY29t
cGlsZXIsIFNIQURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUsIHN5bWJvbHMpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAppbmRleCA3ZDAwNTdmYzI5ZDY2MDdkY2Q1N2VjMmRlNzkxYzM3YTQ0NmVkZDgxLi5l
MGY4MDA2Y2YxOTRlNDE2MDkwZDFiYzFmZjQ3MjJhOTNlMWI0MTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTE3Niw3ICsxNzYsNyBA
QCB1bnNpZ25lZCBHTENvbnRleHQ6OnZlcnNpb24oKQogICAgIGlmICghbV92ZXJzaW9uKSB7CiAg
ICAgICAgIC8vIFZlcnNpb24gc3RyaW5nIGNhbiBzdGFydCB3aXRoIHRoZSB2ZXJzaW9uIG51bWJl
ciAoYWxsIHZlcnNpb25zIGV4Y2VwdCBHTEVTIDEgYW5kIDIpIG9yIHdpdGgKICAgICAgICAgLy8g
Ik9wZW5HTCIuIERpZmZlcmVudCBmaWVsZHMgaW5zaWRlIHRoZSB2ZXJzaW9uIHN0cmluZyBhcmUg
c2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSAgICAgICAgU3RyaW5nIHZlcnNpb25TdHJpbmcgPSBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9O
KSkpOworICAgICAgICBhdXRvIHZlcnNpb25TdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9OKSkpOwog
ICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uU3RyaW5nQ29tcG9uZW50cyA9IHZlcnNpb25T
dHJpbmcuc3BsaXQoJyAnKTsKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uRGlnaXRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZmQ5Zjc4ZTdkMjE0ZTg5OTA4YTA2NThhYmRmNmU5NTcwNjk3ZmJiNi4uMzI0MjA5MDY4N2Y3Nzgx
ZWUwZDNiNGQ2YWZjNTBlZmY0ZGY2M2E4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1Rf
Q0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9j
b2RlY191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1
cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9u
LmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAg
Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAK
aW5kZXggN2EzNjI2M2ZlMDExMzQ0MGU1NDU2YzE5MmQ5YTE4NDUyOWM5NWI5OC4uZDQyMGQ0ODEz
OTMzYjlmNTljZmNmZTc0YmU4ZmMzNjdlNGQzYTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VHc3RTdHJ1Y3R1
cmVWYWx1ZShHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogewogICAg
IGlmIChhdXRvIGpzb25WYWx1ZSA9IGdzdFN0cnVjdHVyZVZhbHVlVG9KU09OKHZhbHVlKSkgewog
ICAgICAgICBhdXRvKiBvYmplY3QgPSByZWludGVycHJldF9jYXN0PEpTT046Ok9iamVjdCo+KHVz
ZXJEYXRhKTsKLSAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmcgeyBnX3F1YXJrX3RvX3N0
cmluZyhmaWVsZElkKSB9LCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBv
YmplY3QtPnNldFZhbHVlKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhmaWVs
ZElkKSksIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBU
UlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRl
eCBiZDZiZTZmN2E2MzBlMzZjYzdiZjE1ODUyYjYwZTIyMWIxNjcyNDc1Li42N2Q3MGNiY2Y3MjMy
M2UyMDkzOTI0MGQ0ZDQ3MGM0MzgxMTY2MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpF
bGVtZW50CiAgICAgaWYgKHNob3VsZENoZWNrSGFyZHdhcmVDbGFzc2lmaWVyID09IENoZWNrSGFy
ZHdhcmVDbGFzc2lmaWVyOjpZZXMpIHsKICAgICAgICAgZm9yIChHTGlzdCogZmFjdG9yaWVzID0g
Y2FuZGlkYXRlczsgZmFjdG9yaWVzOyBmYWN0b3JpZXMgPSBnX2xpc3RfbmV4dChmYWN0b3JpZXMp
KSB7CiAgICAgICAgICAgICBhdXRvKiBmYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVt
ZW50RmFjdG9yeSo+KGZhY3Rvcmllcy0+ZGF0YSk7Ci0gICAgICAgICAgICBTdHJpbmcgbWV0YWRh
dGEgeyBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVO
VF9NRVRBREFUQV9LTEFTUykgfTsKKyAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBTdHJpbmc6
OmZyb21MYXRpbjEoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NU
X0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpKTsKICAgICAgICAgICAgIGF1dG8gY29tcG9uZW50cyA9
IG1ldGFkYXRhLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5jb250YWlu
cygiSGFyZHdhcmUiKSkgewogICAgICAgICAgICAgICAgIGlzVXNpbmdIYXJkd2FyZSA9IHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IGFiZDM2Mjk2MmE0MzU2MDgyMjMzY2IxNGE5OTA3ZDkwNjM0YTZkYzcuLjAxZmVmZWEzMmQyMTM2
ZGZkMWUxZjNjMjViODE2MjY5NjkwZmJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUm
LCBNZWRpYVNvdXIKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKE1lZGlh
U3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIG1fc3RyZWFtUHJpdmF0ZSA9ICZzdHJlYW07
Ci0gICAgbG9hZChTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIikgKyBzdHJlYW0uaWQoKSk7CisgICAg
bG9hZChtYWtlU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIsIHN0cmVhbS5pZCgpKSk7CiAgICAgc3lu
Y09uQ2xvY2soZmFsc2UpOwogCiAgICAgbV9wbGF5ZXItPnBsYXkoKTsKQEAgLTE3MzUsNyArMTcz
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKG1lc3Nh
Z2UsICZlcnIub3V0UHRyKCksICZkZWJ1Zy5vdXRQdHIoKSk7CiAgICAgICAgIEdTVF9FUlJPUigi
RXJyb3IgJWQ6ICVzICh1cmw9JXMpIiwgZXJyLT5jb2RlLCBlcnItPm1lc3NhZ2UsIG1fdXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
IHsgZXJyLT5tZXNzYWdlIH07CisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGVyci0+bWVzc2FnZSk7CiAKICAgICAgICAgZXJyb3IgPSBNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpFbXB0eTsKICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnIuZ2V0KCks
IEdTVF9TVFJFQU1fRVJST1IsIEdTVF9TVFJFQU1fRVJST1JfQ09ERUNfTk9UX0ZPVU5EKQpAQCAt
MTg4OSw3ICsxODg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZWxzZSBpZiAoZ3N0X3N0cnVj
dHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJodHRwLWhlYWRlcnMiKSkgewogICAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUHJvY2Vzc2luZyBIVFRQIGhlYWRlcnM6ICUi
IEdTVF9QVFJfRk9STUFULCBzdHJ1Y3R1cmUpOwogICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIq
IHVyaSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ1cmkiKSkgewotICAg
ICAgICAgICAgICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgICAgICAgICAgICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgICAgICAgICAgICAgIG1f
b3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIAogICAgICAgICAgICAg
ICAgIGlmICh1cmwgIT0gbV91cmwpIHsKQEAgLTIxNjYsNyArMjE2Niw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb25maWd1cmVEb3dubG9hZEJ1ZmZlcihHc3RFbGVtZW50
KiBlbGVtZW50KQogICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidGVtcC10ZW1wbGF0ZSIsIG5l
d0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG51bGxwdHIpOwogICAgIEdTVF9ERUJVR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIlJlY29uZmlndXJlZCBmaWxlIGRvd25sb2FkIHRlbXBsYXRlIGZyb20gJyVz
JyB0byAnJXMnIiwgb2xkRG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbmV3RG93bmxvYWRUZW1wbGF0
ZS5nZXQoKSk7CiAKLSAgICBTdHJpbmcgbmV3RG93bmxvYWRQcmVmaXhQYXRoIHsgbmV3RG93bmxv
YWRUZW1wbGF0ZS5nZXQoKSB9OworICAgIGF1dG8gbmV3RG93bmxvYWRQcmVmaXhQYXRoID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogICAgIHB1cmdlT2xk
RG93bmxvYWRGaWxlcyhuZXdEb3dubG9hZFByZWZpeFBhdGgucmVwbGFjZSgiWFhYWFhYIiwgIiIp
KTsKIH0KIApAQCAtMjQ3MCwxMSArMjQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIC8vIHRob3VnaC4gV2UgbmVlZCB0
byB0YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVybCBhbmQKICAgICAgICAgLy8gYXBwZW5k
IHRoZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQuCiAgICAgICAgIFVSTCBiYXNlVXJsID0g
Z3N0X3VyaV9pc192YWxpZChuZXdMb2NhdGlvbikgPyBVUkwoKSA6IG1fdXJsOwotICAgICAgICBV
UkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZyB7IG5ld0xvY2F0aW9uIH0pOworICAgICAg
ICBVUkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZzo6ZnJvbUxhdGluMShuZXdMb2NhdGlv
bikpOwogCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHBsYXliaW5VcmxTdHI7CiAgICAg
ICAgIGdfb2JqZWN0X2dldChtX3BpcGVsaW5lLmdldCgpLCAiY3VycmVudC11cmkiLCAmcGxheWJp
blVybFN0ci5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgICAgIFVSTCBwbGF5YmluVXJsIHsgU3Ry
aW5nIHsgcGxheWJpblVybFN0ci5nZXQoKSB9IH07CisgICAgICAgIFVSTCBwbGF5YmluVXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHBsYXliaW5VcmxTdHIuZ2V0KCkpIH07CiAKICAgICAgICAgaWYg
KHBsYXliaW5VcmwgPT0gbmV3VXJsKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJQbGF5YmluIGFscmVhZHkgaGFuZGxlZCByZWRpcmVjdGlvbi4iKTsKQEAgLTI1
OTksNyArMjU5OSw3IEBAIGJvb2wgaXNNZWRpYURpc2tDYWNoZURpc2FibGVkKCkKICNpZiBQTEFU
Rk9STShXUEUpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgc3RkOjpjYWxs
X29uY2Uob25jZSwgW10oKSB7Ci0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJXUEVfU0hF
TExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FD
SEUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFN0cmluZyB2
YWx1ZSA9IHMuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2Fs
ZSgpOwogICAgICAgICAgICAgcmVzdWx0ID0gKHZhbHVlID09ICIxIiB8fCB2YWx1ZSA9PSAidCIg
fHwgdmFsdWUgPT0gInRydWUiKTsKQEAgLTM5MTgsNyArMzkxOCw3IEBAIEluaXREYXRhIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFyc2VJbml0RGF0YUZyb21Qcm90ZWN0aW9uTWVzc2Fn
ZShHc3RNZXNzCiAgICAgICAgICAgICBHc3RCdWZmZXIqIGRhdGEgPSBudWxscHRyOwogICAgICAg
ICAgICAgZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQuZ2V0KCksICZldmVudEtleVN5
c3RlbUlkLCAmZGF0YSwgbnVsbHB0cik7CiAKLSAgICAgICAgICAgIGluaXREYXRhLmFwcGVuZCh7
IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtSWQgfSwgZGF0YSB9KTsKKyAgICAgICAgICAgIGluaXRE
YXRhLmFwcGVuZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbUlkKSwgZGF0YSB9
KTsKICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdTVF9FVkVOVF9T
RVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMzksNyArNDAzOSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQcm90ZWN0aW9uRXZl
bnQoR3N0RXZlbnQqIGV2ZW50KQogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVtVVVJRCA9
IG51bGxwdHI7CiAgICAgR3N0QnVmZmVyKiBpbml0RGF0YSA9IG51bGxwdHI7CiAgICAgZ3N0X2V2
ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQsICZldmVudEtleVN5c3RlbVVVSUQsICZpbml0RGF0
YSwgbnVsbHB0cik7Ci0gICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoeyBTdHJpbmcg
eyBldmVudEtleVN5c3RlbVVVSUQgfSwgaW5pdERhdGEgfSk7CisgICAgaW5pdGlhbGl6YXRpb25E
YXRhRW5jb3VudGVyZWQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1VVUlEKSwg
aW5pdERhdGEgfSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0
aW5nRm9yS2V5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcAppbmRleCAwM2VkYWM4YzhlOTdiYjFlYWE0YjMzYjNmNDQ1OWFjZGFkZmI5NDc0Li4y
OTU3YmNlZjNkMGQwZTE4MjhlZjVkZjdiZjhiY2U1ZGVjMmY4ZDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgYm9v
bCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpnZXRMYW5ndWFnZUNvZGUoR3N0VGFnTGlzdCog
dGFncywgQXRvbVN0cmluZyYgdmEKIHsKICAgICBTdHJpbmcgbGFuZ3VhZ2U7CiAgICAgaWYgKGdl
dFRhZyh0YWdzLCBHU1RfVEFHX0xBTkdVQUdFX0NPREUsIGxhbmd1YWdlKSkgewotICAgICAgICBs
YW5ndWFnZSA9IFN0cmluZyB7IGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxh
bmd1YWdlLnV0ZjgoKS5kYXRhKCkpIH07CisgICAgICAgIGxhbmd1YWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxhbmd1YWdlLnV0Zjgo
KS5kYXRhKCkpKTsKICAgICAgICAgR1NUX0RFQlVHKCJDb252ZXJ0ZWQgdHJhY2sgJWQncyBsYW5n
dWFnZSBjb2RlIHRvICVzLiIsIG1faW5kZXgsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICBpZiAobGFuZ3VhZ2UgIT0gdmFsdWUpIHsKICAgICAgICAgICAgIHZhbHVlID0gbGFuZ3Vh
Z2U7CkBAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpn
ZXRUYWcoR3N0VGFnTGlzdCogdGFncywgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIFMKICAgICBHVW5p
cXVlT3V0UHRyPGdjaGFyPiB0YWdWYWx1ZTsKICAgICBpZiAoZ3N0X3RhZ19saXN0X2dldF9zdHJp
bmcodGFncywgdGFnTmFtZSwgJnRhZ1ZhbHVlLm91dFB0cigpKSkgewogICAgICAgICBHU1RfREVC
VUcoIlRyYWNrICVkIGdvdCAlcyAlcy4iLCBtX2luZGV4LCB0YWdOYW1lLCB0YWdWYWx1ZS5nZXQo
KSk7Ci0gICAgICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IHRhZ1ZhbHVlLmdldCgpIH07CisgICAg
ICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IFN0cmluZzo6ZnJvbUxhdGluMSh0YWdWYWx1ZS5nZXQo
KSkgfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKaW5kZXggZDdi
ZTgwNTE4ZWQ2OWVjZWNkNzE2ZmFiMjMyMzBmOGM3NjBiOTZjNS4uMzA1ZTUxYWZmNzVjNWZiMGJh
M2FlYWQyYTE1NDMwZjJjYTRmNGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVN
ZXRhZGF0YUdTdHJlYW1lci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIHdlYmtpdEdzdFRy
YWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ3N0
X3BhZF9hZGRfcHJvYmUoc2lua1BhZC5nZXQoKSwgcHJvYmVUeXBlLCBbXShHc3RQYWQqLCBHc3RQ
YWRQcm9iZUluZm8qIGluZm8sIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVy
biB7CiAgICAgICAgIGF1dG8gW21vZGlmaWVkQnVmZmVyLCBtZXRhXSA9IGVuc3VyZVZpZGVvRnJh
bWVNZXRhZGF0YShHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8pKTsKICAgICAgICAgR1NU
X1BBRF9QUk9CRV9JTkZPX0RBVEEoaW5mbykgPSBtb2RpZmllZEJ1ZmZlcjsKLSAgICAgICAgbWV0
YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmcgeyByZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkgfSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgp
LCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CisgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdU
aW1lcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJE
YXRhKSksIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NL
X1RJTUVfTk9ORSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKICAgICB9LCBn
c3RfZWxlbWVudF9nZXRfbmFtZShlbGVtZW50KSwgZ19mcmVlKTsKIApAQCAtMTM1LDcgKzEzNSw3
IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVu
dCogZWxlbWVudCkKICAgICAgICAgaWYgKCFtZXRhKQogICAgICAgICAgICAgcmV0dXJuIEdTVF9Q
QURfUFJPQkVfT0s7CiAKLSAgICAgICAgU3RyaW5nIGVsZW1lbnROYW1lIHsgcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4odXNlckRhdGEpIH07CisgICAgICAgIGF1dG8gZWxlbWVudE5hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKTsKICAgICAg
ICAgYXV0byB2YWx1ZSA9IG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5nZXQoZWxlbWVudE5h
bWUpOwogICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KGVsZW1lbnROYW1l
LCBzdGQ6Om1ha2VfcGFpcih2YWx1ZS5maXJzdCwgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpKSk7
CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZDY0MDRjMTIwY2E4YWRlMTBmNzVlYjdi
OWIzYWRjMmQ1YzNkMzkwYS4uOTZkZmNmYzEyY2VjN2NiYzA0ZTNkM2NmYjU5OWU1NzM1ZTMyM2Uz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRl
Q29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAw
KQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21p
bWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcg
eyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCBkMGFkNjcyZDcxMDk3Y2Y5MTJhMTczMjI3MDVkZjBlZWQzYzIwOGUzLi5kNTExZGExMDAxOWNi
NDFkMmU4ODY0NGMzZjNhOTliNzcxN2Y4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBib29sIHdlYktp
dFdlYlNyY1NldEV4dHJhSGVhZGVyKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVl
LCBncG9pCiAKICAgICBHU1RfREVCVUcoIkFwcGVuZGluZyBleHRyYSBoZWFkZXI6IFwiJXM6ICVz
XCIiLCBmaWVsZE5hbWUsIGZpZWxkQ29udGVudC5nZXQoKSk7CiAgICAgUmVzb3VyY2VSZXF1ZXN0
KiByZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Kj4odXNlckRhdGEpOwotICAg
IHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcgeyBmaWVsZE5hbWUgfSwgU3RyaW5n
IHsgZmllbGRDb250ZW50LmdldCgpIH0pOworICAgIHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVs
ZChTdHJpbmc6OmZyb21MYXRpbjEoZmllbGROYW1lKSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxk
Q29udGVudC5nZXQoKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NDQsNyArNjQ0LDcg
QEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMs
IERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBBU1NFUlQobWVtYmVycy0+cmVxdWVzdGVk
UG9zaXRpb24gIT0gbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKIAogICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiUG9zdGluZyB0YXNrIHRvIHJlcXVlc3QgUiV1ICVzIHJlcXVlc3RlZFBvc2l0aW9u
PSUiIEdfR1VJTlQ2NF9GT1JNQVQgIiBzdG9wUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCwg
bWVtYmVycy0+cmVxdWVzdE51bWJlciwgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpLCBtZW1iZXJz
LT5yZXF1ZXN0ZWRQb3NpdGlvbiwgbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKLSAgICBVUkwgdXJs
IHsgU3RyaW5nIHsgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpIH0gfTsKKyAgICBVUkwgdXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSkgfTsKIAogICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMo
dHJ1ZSk7CkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJl
cXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBy
ZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihtZW1iZXJzLT5yZWZlcnJlcik7CiAKICAgICBpZiAocHJp
di0+aHR0cE1ldGhvZC5nZXQoKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKFN0cmlu
ZyB7IHByaXYtPmh0dHBNZXRob2QuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+aHR0cE1ldGhvZC5nZXQoKSkpOwogCiAjaWYg
VVNFKFNPVVApCiAgICAgLy8gQnkgZGVmYXVsdCwgSFRUUCBBY2NlcHQtRW5jb2RpbmcgaXMgZGlz
YWJsZWQgaGVyZSBhcyB3ZSBkb24ndApAQCAtNjgxLDcgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIHdl
YktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8
V2ViS2l0V2ViCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZvcm1hdGVkUmFuZ2UucmVzZXQo
Z19zdHJkdXBfcHJpbnRmKCJieXRlcz0lIiBHX0dVSU5UNjRfRk9STUFUICItIiwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24pKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSYW5n
ZSByZXF1ZXN0OiAlcyIsIGZvcm1hdGVkUmFuZ2UuZ2V0KCkpOwotICAgICAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZyB7IGZvcm1hdGVk
UmFuZ2UuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZvcm1hdGVkUmFuZ2UuZ2V0KCkp
KTsKICAgICB9CiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlYWRQb3NpdGlvbiA9PSBtZW1iZXJzLT5y
ZXF1ZXN0ZWRQb3NpdGlvbik7CiAKQEAgLTg4MSw3ICs4ODEsNyBAQCBjb25zdCBnY2hhciogY29u
c3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIAogc3RhdGljIFVSTCBjb252ZXJ0
UGxheWJpblVSSShjb25zdCBjaGFyKiB1cmlTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFVSTCB7IFN0
cmluZyB7IHVyaVN0cmluZyB9IH07CisgICAgcmV0dXJuIFVSTCB7IFN0cmluZzo6ZnJvbUxhdGlu
MSh1cmlTdHJpbmcpIH07CiB9CiAKIHN0YXRpYyBnY2hhciogd2ViS2l0V2ViU3JjR2V0VXJpKEdz
dFVSSUhhbmRsZXIqIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAppbmRleCAwNGVh
ZTAwY2E1NTM5ZTdkMmQ5YjI4Mzk1Y2U5YWUzZjY4NzEyMjlkLi5iYzUzOWE4NzQ3ODAyODE4MTNm
NmFmMzAwYWUyZTAyYjc2YWU2MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKQEAgLTEy
Miw5ICsxMjIsOSBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgQ0RNRmFjdG9yeVRodW5kZXI6OnN1
cHBvcnRlZEtleVN5c3RlbXMoKSBjb25zdAogICAgIGlmIChzdXBwb3J0ZWRLZXlTeXN0ZW1zLmlz
RW1wdHkoKSkgewogICAgICAgICBzdGQ6OnN0cmluZyBlbXB0eVN0cmluZzsKICAgICAgICAgaWYg
KG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2
aW5lS2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigpKSA9PSBFUlJPUl9OT05FKQotICAgICAg
ICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVL
ZXlTeXN0ZW0pKTsKICAgICAgICAgaWYgKG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVh
bWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigp
KSA9PSBFUlJPUl9OT05FKQotICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJF
TUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pKTsKICAgICAgICAgR1NUX0RFQlVHKCIl
enUgc3VwcG9ydGVkIGtleSBzeXN0ZW1zIiwgc3VwcG9ydGVkS2V5U3lzdGVtcy5zaXplKCkpOwog
ICAgIH07CiAgICAgcmV0dXJuIHN1cHBvcnRlZEtleVN5c3RlbXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0
aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRleCBkMmFkZTg3MzBjMDRlNzU1MDJjNmEwNDRh
MDE3OWM5MzI2YzllM2E4Li5hYTYxYzQxYWZjZTQ1YWNhMjE3YjdmNWVmN2RkY2U5MWVmYjI4ZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIqKiBzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqKj4oZ192YWx1ZV9n
ZXRfYm94ZWQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUpKTsKICAgICAgICAg
aWYgKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcykgewogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyArK2kpCi0g
ICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXNbaV0pOworICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5h
cHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XSkpOwogICAgICAgICB9CiAgICAgfQogICAgIGNvbnN0IEV2ZW50VmVjdG9yJiBldmVudHMoKSBj
b25zdCB7IHJldHVybiBtX2V2ZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cAppbmRleCAxYWYwZTU1NGQ4MmJhZTU4MTkzY2FjNjk3NWFhNWE3MzFlMGEzODVlLi4wYmIyMmQ1
MjU5MGVkZTI1NzhmMDRmMjZhNjE2ZjkxNjBjNDRiM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVu
ZFBpcGVsaW5lLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIHN0ZDo6dHVwbGU8R1JlZlB0cjxHc3RD
YXBzPiwgQXBwZW5kUGlwZWxpbmU6OlN0cmVhbVR5cGUsIEZsb2F0U2l6ZT4gQXBwZW5kUGlwZWxp
CiAKICAgICBjb25zdCBjaGFyKiBvcmlnaW5hbE1lZGlhVHlwZSA9IGNhcHNNZWRpYVR5cGUoZGVt
dXhlclNyY1BhZENhcHMpOwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xldG9uKCk7Ci0gICAgaWYgKCFnc3RSZWdpc3RyeVNj
YW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3Vy
YXRpb246OkRlY29kaW5nLCBTdHJpbmcgeyBvcmlnaW5hbE1lZGlhVHlwZSB9KSkgeworICAgIGlm
ICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nOjpmcm9tTGF0aW4xKG9yaWdp
bmFsTWVkaWFUeXBlKSkpIHsKICAgICAgICAgc3RyZWFtVHlwZSA9IFN0cmVhbVR5cGU6OkludmFs
aWQ7CiAgICAgfSBlbHNlIGlmIChkb0NhcHNIYXZlVHlwZShkZW11eGVyU3JjUGFkQ2FwcywgR1NU
X1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIHByZXNlbnRhdGlvblNpemUgPSBn
ZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2FwcyhkZW11eGVyU3JjUGFkQ2FwcykudmFsdWVfb3IoRmxv
YXRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKaW5kZXggZjFlYzYzMWE5N2UzYmRiMjliYTQxYjRjZDVmYzY2YTYxMTAxMzRhMC4u
MDFmMTBiNzhlNjE2ODk2MWEyMDUxNmUxYTE3NjRhMjUzOGE0N2ZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCkBAIC03NCw3ICs3NCw3
IEBAIEF0b21TdHJpbmcgR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbjo6ZXh0cmFjdENvZGVjTmFt
ZSgpCiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGVzY3JpcHRpb24oZ3N0X3BiX3V0
aWxzX2dldF9jb2RlY19kZXNjcmlwdGlvbihvcmlnaW5hbENhcHMuZ2V0KCkpKTsKLSAgICBTdHJp
bmcgY29kZWNOYW1lKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBhdXRvIGNvZGVjTmFtZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXNjcmlwdGlvbi5nZXQoKSk7CiAKICAgICAvLyBSZXBvcnQgIkgu
MjY0IChNYWluIFByb2ZpbGUpIiBhbmQgIkguMjY0IChIaWdoIFByb2ZpbGUpIiBqdXN0IGFzICJI
LjI2NCIgdG8gYWxsb3cgY2hhbmdlcyBiZXR3ZWVuIGJvdGggdmFyaWFudHMKICAgICAvLyBnbyB1
bm5vdGljZWQgdG8gdGhlIFNvdXJjZUJ1ZmZlciBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGI2MTUwZGE0M2Qx
Nzg0ZmQ1NTI1ZmJiZmE5Yjg1MjcwZWUwMzA5OWQuLjVkNTQxOWU4NDhlYTY2ZTQ1ZjVkODMzNWI1
Yzk2MmNlNjQ0NTlkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHNpemVfdCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCkgY29uc3QK
ICAgICAgICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScKICAgICAg
ICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcK
IAotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsK
KyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJNU0VfTUFY
X0JVRkZFUl9TSVpFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOwogICAgICAgICAgICAgZm9y
IChjb25zdCBTdHJpbmcmIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
LmNwcAppbmRleCA5MTk2M2QzMjkwOTNlMzZlMDRhMmQ5ZmFiMWMzZmRhYzM0NmYwYWZmLi5lZTY0
MzFhYzgwZTExMGY1NDk5Y2NlYzFkNWNjMGI2YmM1YTM2OGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgRXh0ZW5zaW9uc0dMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBBU1NFUlQo
IW1fdXNlSW5kZXhlZEdldFN0cmluZyk7Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6Omds
R2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
ZTkyMzI0YWNiZjdlNGZlMGFhYmUyOTIzNzM0NTIxNDY4NGNhZTI5Yy4uMmRjNjQ1NWI0NDI0MzMy
MTlkMTNmOTdiNjI3N2M4MDcyNWY1Njc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHAKQEAgLTc0LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpF
eHRlbnNpb25zR0xPcGVuR0xDb21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAg
ICAsIG1fcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwg
bV91c2VJbmRleGVkR2V0U3RyaW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5k
b3IgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhH
TF9WRU5ET1IpKSk7Ci0gICAgbV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfVkVORE9SKSkpOworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikp
KTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVu
dHMuY29udGFpbnMoIm52aWRpYSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKaW5k
ZXggYjkxMTEwMjU5ODM1ODkwZDY1MTNmYTAzM2MzMmY5NTFlN2VmZGJkOS4uZWRhZTEyOTJmMTg5
M2VkZDg0MjI0NGJmYTdmZmM0NTYwZDA5OGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBFeHRlbnNpb25zR0xPcGVuR0xFUzo6cGxh
dGZvcm1TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFN0cmluZyBFeHRl
bnNpb25zR0xPcGVuR0xFUzo6Z2V0RXh0ZW5zaW9ucygpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMp
KSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IDBh
NmE4OGNmMWFkNGM4NGQxMDAxNDRkMzU5NzU5Yjk1YWU3YjIzYmYuLjhmNTQ2NmE1YTNlN2JlOWVj
NmFjMDI5NTlhZmZkZTQ5ODViMDZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpnZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVu
dCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aGlu
dChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCmluZGV4IDY2ZGJlYzQwYWFjMmI3Mzk3YTE5MzMx
MTY2YzcyYmQ2MjYxNmUwNmUuLjI4NjViOGI4YWE0NDFjMzU5ZTJhNDZhMzRhZTY5ZWQ3ZTc3OTdi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyYg
VGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKQogI2lmIFVTRShPUEVOR0xfRVMp
CiAgICAgICAgIGF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCA9IHRydWU7CiAKLSAgICAgICAg
U3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xH
ZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgYXV0byBleHRlbnNpb25zU3RyaW5n
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9U
VGV4dHVyZXMgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVyZV9ucG90
Iik7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSA9IGV4dGVuc2lv
bnNTdHJpbmcuY29udGFpbnMoIkdMX0VYVF91bnBhY2tfc3ViaW1hZ2UiKTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckZQU0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBjN2ExYzI3MjVkM2QyZTJlZjli
ZTk3M2Q5Y2ZjOGNmYWI5OGI4OGRmLi45MDZmOWI0M2MwZTdlNzJlMWQyZDZmNmExZDc5M2Q5OGMx
MTBlM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OlRleHR1cmVNYXBwZXJGUFNDb3VudGVy
KCkKICAgICAsIG1fbGFzdEZQUygwKQogICAgICwgbV9mcmFtZUNvdW50KDApCiB7Ci0gICAgU3Ry
aW5nIHNob3dGUFNFbnZpcm9ubWVudCB7IGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikgfTsKKyAg
ICBhdXRvIHNob3dGUFNFbnZpcm9ubWVudCA9IFN0cmluZzo6ZnJvbUxhdGluMShnZXRlbnYoIldF
QktJVF9TSE9XX0ZQUyIpKTsKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgbV9mcHNJbnRlcnZh
bCA9IFNlY29uZHMoc2hvd0ZQU0Vudmlyb25tZW50LnRvRG91YmxlKCZvaykpOwogICAgIGlmIChv
ayAmJiBtX2Zwc0ludGVydmFsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYy
Yjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRkNWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJm
YmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0
cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25l
ZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIEdES19LRVlfS1Bf
RW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9C
YWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tleXZhbF90b191bmljb2RlKHZhbCk7CiAgICAg
ICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndw
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNi
NThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYzMC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5
NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGli
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcs
MTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFj
dGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAg
IGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAg
ICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQi
X3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2
ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0
MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0
cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4m
JiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VU
eXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9n
ZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhT
dHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0
YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgo
IlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNw
bGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5
Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0
UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkp
OwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8g
cmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAg
YXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vz
c2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1h
eWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZv
Q3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4u
MmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUlu
Zm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJ
bmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJp
ZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsg
WDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5n
KG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0
ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIs
IHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2
YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRl
eHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBj
b25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNv
ZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JD
b2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJp
bmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9u
c2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNz
LT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3Mt
PnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9y
dCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgi
OiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2
NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYx
N2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBA
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5
SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCog
c3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBT
dHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5n
IHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRf
Y3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1
NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4
NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdl
dFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lv
blBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXRE
YXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkK
ICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3Jl
LmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxl
KTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRp
dGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxl
YXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBn
ZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNp
b25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAg
ICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3Jl
LmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxl
RXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0
ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0
ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAg
ICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsK
ICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElE
YXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmpl
Y3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFT
Q0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxM
b2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAg
ICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2Nr
KHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAg
fSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0
IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwo
RG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJh
c2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAg
ICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwog
ICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3Jj
VVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2Zi
ZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMz
YTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxh
aW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6
SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1f
b3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRh
KENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJh
Y3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0
aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7
IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0
ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExv
Y2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAg
ICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyAr
ODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJh
Z21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRh
dGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRh
KSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEds
b2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOwor
ICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAg
ICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpD
bG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZy
b21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4
MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3Vw
cG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmlu
Z3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7Cisg
ICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5n
ZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUz
ZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYy
ZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QK
IAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7
CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFn
ZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3Ry
YXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4
N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0
NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vydmlj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEs
NyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0
cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklW
RVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0
RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJn
ZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7
CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAg
ICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmlu
ZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCIt
LXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxl
bmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9
IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBT
dHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3Ry
TGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICIt
LWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBT
dHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsK
KyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdl
dFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFy
ZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6
OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNl
cnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFt
ZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBt
X3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3Ry
aW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVk
IGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4g
V2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3Qm
IHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVk
LCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJl
ZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICgh
KHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmpl
Y3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNN
YXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRp
ZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQg
cmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRl
IGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICBy
ZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBh
YmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAg
ICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFs
dWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkg
ewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlz
IG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFy
Z3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJz
dE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9
CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytp
KSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBh
YmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRp
ZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQg
Zmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJE
cml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAog
ICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBj
YXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5l
d1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwog
ICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93
ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNl
c3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1h
eGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vz
c2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4m
JiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1h
dGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwg
U3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1
c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpv
cAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwog
ICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nl
c3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1
dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3Vi
dHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVs
bCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmpl
Y3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlv
biBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpT
T046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAg
ICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAg
ICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFs
dWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlk
IGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAg
ICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5
NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046
Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJh
dGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAg
IGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAg
aWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFs
aWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsy
MDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2lu
T2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxl
bWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50
aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2
YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlk
IHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2lu
dGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBA
IC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAg
ZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3Jp
Z2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6
bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9u
Iik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRl
bS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFu
Z2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
eCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAz
NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3Qm
IGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0
aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJl
ckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZv
ciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgs
NyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlw
ZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1
YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50
ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAg
ICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAg
ICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93
biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0
byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0
dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGlu
dmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9u
TW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBp
ZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAg
ICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0
cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBh
Y3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRh
WCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAg
ICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRh
WC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0
aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0Jgog
ICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRh
WSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2Uo
KmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVkn
IGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIx
NjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1Bv
aW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0
YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJz
RGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBw
b2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFu
IG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0y
MTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4g
cHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBv
aW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQ
b2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24K
IHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVj
dCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmpl
Y3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwx
MyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUg
PT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6
Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7
CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMg
aW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5n
ZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rp
b25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNl
c3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVy
VHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24n
dCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1
dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJj
ZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBz
b3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2lu
dGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAg
IGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3Mp
OwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFj
dGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVl
bmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcs
NyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNz
SW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25J
dGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rp
b25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBp
biBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBv
YmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQog
CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rp
b25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0
byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAg
aWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Iikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdm
ZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOwor
ICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBj
YXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGll
czsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
TWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6
T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykg
Y29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVD
RElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJv
d3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNE
SVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93
c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJp
bmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Ny
b2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRy
aXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4u
YWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2Fw
YWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIp
OworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRp
ZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNl
V1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmlu
ZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUy
N2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3Bl
L1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmls
aXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9
CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNo
Q2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVj
dCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0
CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2Vy
Iik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2Vy
Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+
IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNo
ZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEyMjlhODAyZTI4
YjVlYjcxMTI4OGY1ZTMwYzI2MjUwOGFiMmQ5YmMuLjlmNmI4ZThhNTEzYjc4MGZlNzdhMTBlNWE3
ZWE3YzBkMDBjMTlmYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJp
bmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxs
ZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRh
cmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIEFkZCBxdWV1
ZSB0cmlnZ2VyZWQgYnkgbGFiZWwgYWRkaXRpb24gKEZvbGxvdy11cCBmaXgpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXgg
NGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRh
NTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5
TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5n
IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHko
b3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkp
OwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0
NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2lu
YWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmlu
Z0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmln
aW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFs
KSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAt
NjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2
aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxT
dHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07
CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9y
aWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBs
KCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmln
aW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAg
IEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAg
ICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9z
IH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3Jp
Z2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVk
YWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNz
aW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmls
ZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9z
KSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZk
YzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJk
YTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdl
ciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4
OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThk
YTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVu
ZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2gi
LCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcj
Jyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1
aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3Ry
aW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENo
YXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5k
KCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFla
Il9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRl
cjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJp
bmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcu
Y19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRp
Y0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBi
dWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
KSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsK
ICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2Qi
LCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
bWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIp
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBj
b252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3Qg
Zml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5p
czhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIu
bGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwg
YnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3Ry
aW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRo
ZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhC
aXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVu
Z3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVs
bHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBi
dWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAg
fQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBs
KCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBi
dWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsK
ICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4K
ICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEw
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJf
cyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWls
ZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEo
c3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4K
ICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VR
KGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3Mp
LCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
X3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBv
ZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsK
ICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7
CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVD
VF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0
eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIw
MTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUs
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRl
ci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAog
ICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBF
Q1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxk
ZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1
YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4o
MCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygi
YWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJl
c2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWls
ZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1
aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWls
ZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAh
PSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRv
bVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIu
cmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJp
bmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5j
cHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2
NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1Qo
V1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBU
RVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJp
bmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3Mp
OwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBB
U1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0
ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmco
KSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1
MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5j
cHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1Qo
V1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7Cisg
ICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmco
IkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwi
X3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9Owor
ICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3Ry
aW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9F
USgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3
OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUs
NyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBT
dHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmll
dzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7Cisg
ICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmll
dyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNU
X1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcg
Kzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAg
ICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmlu
ZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJo
ZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkp
OwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAt
MTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0
cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
Vmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhl
bG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBo
ZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2lu
dHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykK
ICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRz
SXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJh
dG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJr
aXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3
ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2Rl
UG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4
MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hl
ZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFT
Q0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlz
QWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9z
KSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZy
b21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
VmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVY
UEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUi
SGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9V
UkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1
MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBV
UkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7
CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5n
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9z
dCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVY
UEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dv
cmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRt
bCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBr
dXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwi
KSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1
cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFz
c3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBh
dGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBh
dGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwu
cXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZp
ZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50
SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVy
bEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJ
TGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQ
b3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAv
aW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5j
b206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5o
dG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2Mi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJh
c2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZf
VVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0Yo
V1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0g
Y3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5
UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJs
MzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAg
LTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0
KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAg
ICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
JmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7
ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9y
MTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIi
LCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJs
MTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1
cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12
YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIi
X3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsK
ICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJr
ZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJr
ZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwy
Il9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAg
ICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwy
JmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsi
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5
MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIv
P3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwg
eyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJs
MjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9
LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0
ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8i
LCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0
VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIi
X3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAog
ICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsK
ICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIg
e3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAg
ICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsK
ICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2
IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzcz
YTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNj
YzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9W
ZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAK
QEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNU
KFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsK
LSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJf
cywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJr
MyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJl
dHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmlu
Zy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIy
MTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChX
VEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhw
bGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxl
bmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBz
dHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0
ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBj
b25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdG
cm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJT
dHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFs
IiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBM
aXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21M
aXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIp
LCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVy
YWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkK
QEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkK
IHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6
OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIp
OworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQ
RUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmlu
ZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAg
ICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVj
dGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0
cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxh
dGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBs
YWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9E
b3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9r
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9U
UlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAg
ICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5n
IHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAg
ICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAg
ICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFs
d2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29p
bmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91Ymxl
KCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVY
UEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFs
IHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImlu
ZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0
eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
X3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBv
bmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
bmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcyku
dG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0
cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3Qi
KS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUi
KSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdB
dChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlz
OEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAw
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhT
dGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3Mp
Lmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJp
bmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1Qo
V1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6
ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5m
aXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3Ms
IDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4
aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOwor
ICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFM
U0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5o
YXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcg
QEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNv
ZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0
cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgp
KTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0g
eyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3
NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgx
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29u
dGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4
dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXth
LGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6
T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVz
dFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0
YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJM
RmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3Rh
dHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VT
dGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxu
Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2sp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25p
dG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5j
cHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5
NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAg
ICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsK
LWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdl
ZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2
aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3Qg
U3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQg
Zm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWRE
YXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNz
IEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5j
cHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4
OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkg
Kzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIi
X3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgo
YykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3Ry
aW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5v
bkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5v
bkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3Rl
ZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90
ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAg
LTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6
IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9
KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5n
Ojpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29t
ZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRD
b2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5n
LmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1
OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAs
NyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2Rp
bmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUo
JldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNv
ZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0
ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2Vi
Q29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwog
fQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdm
YTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4
ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1Rf
RihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNU
X0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3
MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJj
b20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ind3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHci
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Y29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVr
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0t
emYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0
YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShT
dHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQt
LS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
cjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3Ry
aW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWlu
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJl
eGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4
YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhv
c3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOW
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50
ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2Nh
bGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0
aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIu
Li4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1
YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAK
QEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAg
ICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtp
dC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0
b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5n
IHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07
CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOwor
ICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAog
ICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3Vs
dCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1
ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWVi
MGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVh
dGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmls
ZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRz
T2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChi
dWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgo
KSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVy
LT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0
ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1
ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtl
Q29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5
RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQ
YXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2
OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThl
YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJM
UGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1
dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIl
QzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5n
KHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0s
IHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGlu
ZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4x
KCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFj
ZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmlu
ZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNr
VVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJp
bmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5
U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDov
L2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCks
ICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJM
UGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hv
c3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0
cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShT
dHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklT
Ty04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhE
QywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9o
b3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAl
RDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDEl
OTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0
aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmlu
ZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0
eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNl
VHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
RGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5
MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJh
c2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFi
YXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxk
IHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAg
ICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20g
ZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERh
dGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
V2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3
ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNl
RG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2su
CiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhl
IHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3
OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0
aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVt
b3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8g
T3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7
CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldp
dGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBz
aG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAg
ICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBk
aXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAog
ICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9t
IHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURh
dGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hl
cmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNr
LgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9u
IGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7
CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0
YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBh
dGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9y
ZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRj
MTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAg
LTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIo
KQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pk
eWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdD
RkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03
OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095
L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJ
VFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIi
CiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdU
RUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5
UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9V
ZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZ
bmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAi
SkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpu
MHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9o
SGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVz
ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmlj
YXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42
YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9u
Lm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFu
ZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAg
ICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9T
VCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVx
dWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmlu
Z1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxp
bmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2Vu
U2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9z
KSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0
KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5k
U2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0
cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmlu
Z1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5n
KCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0
aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVu
ZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAg
c3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNp
Z25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0
TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5n
dGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3Vy
Y2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFy
dHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZp
bmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCAr
PSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4
NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBl
bnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERv
U2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291
cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5h
dGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0
IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9p
ZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxp
dGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRl
cmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkK
IHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRl
bnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5n
KHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAg
ICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0
cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNP
T1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9u
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNP
T1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlv
bkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVt
YmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVz
dGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7
CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWly
PFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMp
OwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNP
T1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYm
ICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRp
b25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNt
cChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAh
c3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNl
U2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4i
X3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRp
b25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUt
b3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVY
UEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlv
blNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6
Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBA
QCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNP
T1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7
IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5v
bmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3Np
bmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAv
LyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0
IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdp
bi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2Ug
ZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1l
LW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRD
T09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJW
aWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2
YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAx
YWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNv
bm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZl
Y3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNl
KHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUo
KSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJD
b250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgp
LCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9
XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIg
fX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50
LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0
V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVx
dWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIo
KGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxh
c3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVm
MjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1
ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMs
OCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNv
bnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3Jj
PSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10g
PQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9
J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQn
IGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIg
c3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9w
dGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGlj
IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMw
YjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVD
YW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRN
ZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBD
b250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3Lmdl
dCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJk
OltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJp
bmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2Vi
Vmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1
MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdi
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0Nh
blBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFu
Y2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAg
TlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3
OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lk
KXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVu
SmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRp
YXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQ
QVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyks
IFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFm
NGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2Qy
ZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5
ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdy
YWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFk
ZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNj
ZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tl
dCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAg
ICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1
ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVD
b250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsK
IH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENl
cnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6
cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3
WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4
dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIK
LSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdt
cmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9
IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3Zl
KCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90
PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3Iw
Ykh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBj
VGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFo
MnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZt
KzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09
Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1
dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkp
OwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9U
b29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJL
aXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUy
NGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQK
LS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xs
ZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xh
c3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQog
ewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5n
IHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBs
KCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1w
dHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBh
bkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vt
w6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1
bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5p
bXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBD
YXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485595"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457111</attachid>
            <date>2022-04-08 12:42:11 -0700</date>
            <delta_ts>2022-04-08 15:08:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408124209.patch</filename>
            <type>text/plain</type>
            <size>167566</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBj
MDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFjMTAwMzIy
YzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkg
Y29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICAg
ICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogU3RyaW5n
KCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+
PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5pc29sYXRl
ZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKaW5kZXggYzVk
ZTFiNjhiNWNjY2E0YjhjOTg1M2IzMzhiNDk4MjE4ZTE0Mzg5YS4uYjI4YTVhNGU4ZjZmNzY1MDIx
OWU3MjIwYWYwYjQ3NDhlMjAxN2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcApAQCAtMTg2LDEzICsxODYsMTMg
QEAgYm9vbCBBTkdMRVdlYktpdEJyaWRnZTo6Y29tcGlsZVNoYWRlclNvdXJjZShjb25zdCBjaGFy
KiBzaGFkZXJTb3VyY2UsIEFOR0xFU2hhZGUKICAgICBpZiAoIXZhbGlkYXRlU3VjY2Vzcykgewog
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbG9nID0gc2g6OkdldEluZm9Mb2coY29tcGlsZXIp
OwogICAgICAgICBpZiAobG9nLmxlbmd0aCgpKQotICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZyB7IGxvZy5jX3N0cigpIH07CisgICAgICAgICAgICBzaGFkZXJWYWxpZGF0
aW9uTG9nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZy5jX3N0cigpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvYmplY3RDb2RlID0gc2g6
OkdldE9iamVjdENvZGUoY29tcGlsZXIpOwogICAgIGlmIChvYmplY3RDb2RlLmxlbmd0aCgpKQot
ICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nIHsgb2JqZWN0Q29kZS5jX3N0
cigpIH07CisgICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0Q29kZS5jX3N0cigpKTsKICAgICAKICAgICBpZiAoIWdldFN5bWJvbEluZm8oY29t
cGlsZXIsIFNIQURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUsIHN5bWJvbHMpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAppbmRleCA3ZDAwNTdmYzI5ZDY2MDdkY2Q1N2VjMmRlNzkxYzM3YTQ0NmVkZDgxLi5l
MGY4MDA2Y2YxOTRlNDE2MDkwZDFiYzFmZjQ3MjJhOTNlMWI0MTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTE3Niw3ICsxNzYsNyBA
QCB1bnNpZ25lZCBHTENvbnRleHQ6OnZlcnNpb24oKQogICAgIGlmICghbV92ZXJzaW9uKSB7CiAg
ICAgICAgIC8vIFZlcnNpb24gc3RyaW5nIGNhbiBzdGFydCB3aXRoIHRoZSB2ZXJzaW9uIG51bWJl
ciAoYWxsIHZlcnNpb25zIGV4Y2VwdCBHTEVTIDEgYW5kIDIpIG9yIHdpdGgKICAgICAgICAgLy8g
Ik9wZW5HTCIuIERpZmZlcmVudCBmaWVsZHMgaW5zaWRlIHRoZSB2ZXJzaW9uIHN0cmluZyBhcmUg
c2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSAgICAgICAgU3RyaW5nIHZlcnNpb25TdHJpbmcgPSBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9O
KSkpOworICAgICAgICBhdXRvIHZlcnNpb25TdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9OKSkpOwog
ICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uU3RyaW5nQ29tcG9uZW50cyA9IHZlcnNpb25T
dHJpbmcuc3BsaXQoJyAnKTsKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uRGlnaXRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZmQ5Zjc4ZTdkMjE0ZTg5OTA4YTA2NThhYmRmNmU5NTcwNjk3ZmJiNi4uMzI0MjA5MDY4N2Y3Nzgx
ZWUwZDNiNGQ2YWZjNTBlZmY0ZGY2M2E4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1Rf
Q0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9j
b2RlY191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1
cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9u
LmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAg
Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAK
aW5kZXggN2EzNjI2M2ZlMDExMzQ0MGU1NDU2YzE5MmQ5YTE4NDUyOWM5NWI5OC4uZDQyMGQ0ODEz
OTMzYjlmNTljZmNmZTc0YmU4ZmMzNjdlNGQzYTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VHc3RTdHJ1Y3R1
cmVWYWx1ZShHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogewogICAg
IGlmIChhdXRvIGpzb25WYWx1ZSA9IGdzdFN0cnVjdHVyZVZhbHVlVG9KU09OKHZhbHVlKSkgewog
ICAgICAgICBhdXRvKiBvYmplY3QgPSByZWludGVycHJldF9jYXN0PEpTT046Ok9iamVjdCo+KHVz
ZXJEYXRhKTsKLSAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmcgeyBnX3F1YXJrX3RvX3N0
cmluZyhmaWVsZElkKSB9LCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBv
YmplY3QtPnNldFZhbHVlKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhmaWVs
ZElkKSksIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBU
UlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRl
eCBiZDZiZTZmN2E2MzBlMzZjYzdiZjE1ODUyYjYwZTIyMWIxNjcyNDc1Li42N2Q3MGNiY2Y3MjMy
M2UyMDkzOTI0MGQ0ZDQ3MGM0MzgxMTY2MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpF
bGVtZW50CiAgICAgaWYgKHNob3VsZENoZWNrSGFyZHdhcmVDbGFzc2lmaWVyID09IENoZWNrSGFy
ZHdhcmVDbGFzc2lmaWVyOjpZZXMpIHsKICAgICAgICAgZm9yIChHTGlzdCogZmFjdG9yaWVzID0g
Y2FuZGlkYXRlczsgZmFjdG9yaWVzOyBmYWN0b3JpZXMgPSBnX2xpc3RfbmV4dChmYWN0b3JpZXMp
KSB7CiAgICAgICAgICAgICBhdXRvKiBmYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVt
ZW50RmFjdG9yeSo+KGZhY3Rvcmllcy0+ZGF0YSk7Ci0gICAgICAgICAgICBTdHJpbmcgbWV0YWRh
dGEgeyBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVO
VF9NRVRBREFUQV9LTEFTUykgfTsKKyAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBTdHJpbmc6
OmZyb21MYXRpbjEoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NU
X0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpKTsKICAgICAgICAgICAgIGF1dG8gY29tcG9uZW50cyA9
IG1ldGFkYXRhLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5jb250YWlu
cygiSGFyZHdhcmUiKSkgewogICAgICAgICAgICAgICAgIGlzVXNpbmdIYXJkd2FyZSA9IHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IGFiZDM2Mjk2MmE0MzU2MDgyMjMzY2IxNGE5OTA3ZDkwNjM0YTZkYzcuLjAxZmVmZWEzMmQyMTM2
ZGZkMWUxZjNjMjViODE2MjY5NjkwZmJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUm
LCBNZWRpYVNvdXIKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKE1lZGlh
U3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIG1fc3RyZWFtUHJpdmF0ZSA9ICZzdHJlYW07
Ci0gICAgbG9hZChTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIikgKyBzdHJlYW0uaWQoKSk7CisgICAg
bG9hZChtYWtlU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIsIHN0cmVhbS5pZCgpKSk7CiAgICAgc3lu
Y09uQ2xvY2soZmFsc2UpOwogCiAgICAgbV9wbGF5ZXItPnBsYXkoKTsKQEAgLTE3MzUsNyArMTcz
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKG1lc3Nh
Z2UsICZlcnIub3V0UHRyKCksICZkZWJ1Zy5vdXRQdHIoKSk7CiAgICAgICAgIEdTVF9FUlJPUigi
RXJyb3IgJWQ6ICVzICh1cmw9JXMpIiwgZXJyLT5jb2RlLCBlcnItPm1lc3NhZ2UsIG1fdXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
IHsgZXJyLT5tZXNzYWdlIH07CisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGVyci0+bWVzc2FnZSk7CiAKICAgICAgICAgZXJyb3IgPSBNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpFbXB0eTsKICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnIuZ2V0KCks
IEdTVF9TVFJFQU1fRVJST1IsIEdTVF9TVFJFQU1fRVJST1JfQ09ERUNfTk9UX0ZPVU5EKQpAQCAt
MTg4OSw3ICsxODg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZWxzZSBpZiAoZ3N0X3N0cnVj
dHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJodHRwLWhlYWRlcnMiKSkgewogICAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUHJvY2Vzc2luZyBIVFRQIGhlYWRlcnM6ICUi
IEdTVF9QVFJfRk9STUFULCBzdHJ1Y3R1cmUpOwogICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIq
IHVyaSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ1cmkiKSkgewotICAg
ICAgICAgICAgICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgICAgICAgICAgICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgICAgICAgICAgICAgIG1f
b3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIAogICAgICAgICAgICAg
ICAgIGlmICh1cmwgIT0gbV91cmwpIHsKQEAgLTIxNjYsNyArMjE2Niw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb25maWd1cmVEb3dubG9hZEJ1ZmZlcihHc3RFbGVtZW50
KiBlbGVtZW50KQogICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidGVtcC10ZW1wbGF0ZSIsIG5l
d0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG51bGxwdHIpOwogICAgIEdTVF9ERUJVR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIlJlY29uZmlndXJlZCBmaWxlIGRvd25sb2FkIHRlbXBsYXRlIGZyb20gJyVz
JyB0byAnJXMnIiwgb2xkRG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbmV3RG93bmxvYWRUZW1wbGF0
ZS5nZXQoKSk7CiAKLSAgICBTdHJpbmcgbmV3RG93bmxvYWRQcmVmaXhQYXRoIHsgbmV3RG93bmxv
YWRUZW1wbGF0ZS5nZXQoKSB9OworICAgIGF1dG8gbmV3RG93bmxvYWRQcmVmaXhQYXRoID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogICAgIHB1cmdlT2xk
RG93bmxvYWRGaWxlcyhuZXdEb3dubG9hZFByZWZpeFBhdGgucmVwbGFjZSgiWFhYWFhYIiwgIiIp
KTsKIH0KIApAQCAtMjQ3MCwxMSArMjQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIC8vIHRob3VnaC4gV2UgbmVlZCB0
byB0YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVybCBhbmQKICAgICAgICAgLy8gYXBwZW5k
IHRoZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQuCiAgICAgICAgIFVSTCBiYXNlVXJsID0g
Z3N0X3VyaV9pc192YWxpZChuZXdMb2NhdGlvbikgPyBVUkwoKSA6IG1fdXJsOwotICAgICAgICBV
UkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZyB7IG5ld0xvY2F0aW9uIH0pOworICAgICAg
ICBVUkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZzo6ZnJvbUxhdGluMShuZXdMb2NhdGlv
bikpOwogCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHBsYXliaW5VcmxTdHI7CiAgICAg
ICAgIGdfb2JqZWN0X2dldChtX3BpcGVsaW5lLmdldCgpLCAiY3VycmVudC11cmkiLCAmcGxheWJp
blVybFN0ci5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgICAgIFVSTCBwbGF5YmluVXJsIHsgU3Ry
aW5nIHsgcGxheWJpblVybFN0ci5nZXQoKSB9IH07CisgICAgICAgIFVSTCBwbGF5YmluVXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHBsYXliaW5VcmxTdHIuZ2V0KCkpIH07CiAKICAgICAgICAgaWYg
KHBsYXliaW5VcmwgPT0gbmV3VXJsKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJQbGF5YmluIGFscmVhZHkgaGFuZGxlZCByZWRpcmVjdGlvbi4iKTsKQEAgLTI1
OTksNyArMjU5OSw3IEBAIGJvb2wgaXNNZWRpYURpc2tDYWNoZURpc2FibGVkKCkKICNpZiBQTEFU
Rk9STShXUEUpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgc3RkOjpjYWxs
X29uY2Uob25jZSwgW10oKSB7Ci0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJXUEVfU0hF
TExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FD
SEUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFN0cmluZyB2
YWx1ZSA9IHMuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2Fs
ZSgpOwogICAgICAgICAgICAgcmVzdWx0ID0gKHZhbHVlID09ICIxIiB8fCB2YWx1ZSA9PSAidCIg
fHwgdmFsdWUgPT0gInRydWUiKTsKQEAgLTM5MTgsNyArMzkxOCw3IEBAIEluaXREYXRhIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFyc2VJbml0RGF0YUZyb21Qcm90ZWN0aW9uTWVzc2Fn
ZShHc3RNZXNzCiAgICAgICAgICAgICBHc3RCdWZmZXIqIGRhdGEgPSBudWxscHRyOwogICAgICAg
ICAgICAgZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQuZ2V0KCksICZldmVudEtleVN5
c3RlbUlkLCAmZGF0YSwgbnVsbHB0cik7CiAKLSAgICAgICAgICAgIGluaXREYXRhLmFwcGVuZCh7
IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtSWQgfSwgZGF0YSB9KTsKKyAgICAgICAgICAgIGluaXRE
YXRhLmFwcGVuZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbUlkKSwgZGF0YSB9
KTsKICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdTVF9FVkVOVF9T
RVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMzksNyArNDAzOSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQcm90ZWN0aW9uRXZl
bnQoR3N0RXZlbnQqIGV2ZW50KQogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVtVVVJRCA9
IG51bGxwdHI7CiAgICAgR3N0QnVmZmVyKiBpbml0RGF0YSA9IG51bGxwdHI7CiAgICAgZ3N0X2V2
ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQsICZldmVudEtleVN5c3RlbVVVSUQsICZpbml0RGF0
YSwgbnVsbHB0cik7Ci0gICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoeyBTdHJpbmcg
eyBldmVudEtleVN5c3RlbVVVSUQgfSwgaW5pdERhdGEgfSk7CisgICAgaW5pdGlhbGl6YXRpb25E
YXRhRW5jb3VudGVyZWQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1VVUlEKSwg
aW5pdERhdGEgfSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0
aW5nRm9yS2V5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcAppbmRleCAwM2VkYWM4YzhlOTdiYjFlYWE0YjMzYjNmNDQ1OWFjZGFkZmI5NDc0Li4y
OTU3YmNlZjNkMGQwZTE4MjhlZjVkZjdiZjhiY2U1ZGVjMmY4ZDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgYm9v
bCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpnZXRMYW5ndWFnZUNvZGUoR3N0VGFnTGlzdCog
dGFncywgQXRvbVN0cmluZyYgdmEKIHsKICAgICBTdHJpbmcgbGFuZ3VhZ2U7CiAgICAgaWYgKGdl
dFRhZyh0YWdzLCBHU1RfVEFHX0xBTkdVQUdFX0NPREUsIGxhbmd1YWdlKSkgewotICAgICAgICBs
YW5ndWFnZSA9IFN0cmluZyB7IGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxh
bmd1YWdlLnV0ZjgoKS5kYXRhKCkpIH07CisgICAgICAgIGxhbmd1YWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxhbmd1YWdlLnV0Zjgo
KS5kYXRhKCkpKTsKICAgICAgICAgR1NUX0RFQlVHKCJDb252ZXJ0ZWQgdHJhY2sgJWQncyBsYW5n
dWFnZSBjb2RlIHRvICVzLiIsIG1faW5kZXgsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICBpZiAobGFuZ3VhZ2UgIT0gdmFsdWUpIHsKICAgICAgICAgICAgIHZhbHVlID0gbGFuZ3Vh
Z2U7CkBAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpn
ZXRUYWcoR3N0VGFnTGlzdCogdGFncywgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIFMKICAgICBHVW5p
cXVlT3V0UHRyPGdjaGFyPiB0YWdWYWx1ZTsKICAgICBpZiAoZ3N0X3RhZ19saXN0X2dldF9zdHJp
bmcodGFncywgdGFnTmFtZSwgJnRhZ1ZhbHVlLm91dFB0cigpKSkgewogICAgICAgICBHU1RfREVC
VUcoIlRyYWNrICVkIGdvdCAlcyAlcy4iLCBtX2luZGV4LCB0YWdOYW1lLCB0YWdWYWx1ZS5nZXQo
KSk7Ci0gICAgICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IHRhZ1ZhbHVlLmdldCgpIH07CisgICAg
ICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IFN0cmluZzo6ZnJvbUxhdGluMSh0YWdWYWx1ZS5nZXQo
KSkgfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKaW5kZXggZDdi
ZTgwNTE4ZWQ2OWVjZWNkNzE2ZmFiMjMyMzBmOGM3NjBiOTZjNS4uMzA1ZTUxYWZmNzVjNWZiMGJh
M2FlYWQyYTE1NDMwZjJjYTRmNGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVN
ZXRhZGF0YUdTdHJlYW1lci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIHdlYmtpdEdzdFRy
YWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ3N0
X3BhZF9hZGRfcHJvYmUoc2lua1BhZC5nZXQoKSwgcHJvYmVUeXBlLCBbXShHc3RQYWQqLCBHc3RQ
YWRQcm9iZUluZm8qIGluZm8sIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVy
biB7CiAgICAgICAgIGF1dG8gW21vZGlmaWVkQnVmZmVyLCBtZXRhXSA9IGVuc3VyZVZpZGVvRnJh
bWVNZXRhZGF0YShHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8pKTsKICAgICAgICAgR1NU
X1BBRF9QUk9CRV9JTkZPX0RBVEEoaW5mbykgPSBtb2RpZmllZEJ1ZmZlcjsKLSAgICAgICAgbWV0
YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmcgeyByZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkgfSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgp
LCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CisgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdU
aW1lcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJE
YXRhKSksIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NL
X1RJTUVfTk9ORSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKICAgICB9LCBn
c3RfZWxlbWVudF9nZXRfbmFtZShlbGVtZW50KSwgZ19mcmVlKTsKIApAQCAtMTM1LDcgKzEzNSw3
IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVu
dCogZWxlbWVudCkKICAgICAgICAgaWYgKCFtZXRhKQogICAgICAgICAgICAgcmV0dXJuIEdTVF9Q
QURfUFJPQkVfT0s7CiAKLSAgICAgICAgU3RyaW5nIGVsZW1lbnROYW1lIHsgcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4odXNlckRhdGEpIH07CisgICAgICAgIGF1dG8gZWxlbWVudE5hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKTsKICAgICAg
ICAgYXV0byB2YWx1ZSA9IG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5nZXQoZWxlbWVudE5h
bWUpOwogICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KGVsZW1lbnROYW1l
LCBzdGQ6Om1ha2VfcGFpcih2YWx1ZS5maXJzdCwgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpKSk7
CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZDY0MDRjMTIwY2E4YWRlMTBmNzVlYjdi
OWIzYWRjMmQ1YzNkMzkwYS4uOTZkZmNmYzEyY2VjN2NiYzA0ZTNkM2NmYjU5OWU1NzM1ZTMyM2Uz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRl
Q29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAw
KQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21p
bWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcg
eyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCBkMGFkNjcyZDcxMDk3Y2Y5MTJhMTczMjI3MDVkZjBlZWQzYzIwOGUzLi5kNTExZGExMDAxOWNi
NDFkMmU4ODY0NGMzZjNhOTliNzcxN2Y4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBib29sIHdlYktp
dFdlYlNyY1NldEV4dHJhSGVhZGVyKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVl
LCBncG9pCiAKICAgICBHU1RfREVCVUcoIkFwcGVuZGluZyBleHRyYSBoZWFkZXI6IFwiJXM6ICVz
XCIiLCBmaWVsZE5hbWUsIGZpZWxkQ29udGVudC5nZXQoKSk7CiAgICAgUmVzb3VyY2VSZXF1ZXN0
KiByZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Kj4odXNlckRhdGEpOwotICAg
IHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcgeyBmaWVsZE5hbWUgfSwgU3RyaW5n
IHsgZmllbGRDb250ZW50LmdldCgpIH0pOworICAgIHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVs
ZChTdHJpbmc6OmZyb21MYXRpbjEoZmllbGROYW1lKSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxk
Q29udGVudC5nZXQoKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NDQsNyArNjQ0LDcg
QEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMs
IERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBBU1NFUlQobWVtYmVycy0+cmVxdWVzdGVk
UG9zaXRpb24gIT0gbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKIAogICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiUG9zdGluZyB0YXNrIHRvIHJlcXVlc3QgUiV1ICVzIHJlcXVlc3RlZFBvc2l0aW9u
PSUiIEdfR1VJTlQ2NF9GT1JNQVQgIiBzdG9wUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCwg
bWVtYmVycy0+cmVxdWVzdE51bWJlciwgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpLCBtZW1iZXJz
LT5yZXF1ZXN0ZWRQb3NpdGlvbiwgbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKLSAgICBVUkwgdXJs
IHsgU3RyaW5nIHsgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpIH0gfTsKKyAgICBVUkwgdXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSkgfTsKIAogICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMo
dHJ1ZSk7CkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJl
cXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBy
ZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihtZW1iZXJzLT5yZWZlcnJlcik7CiAKICAgICBpZiAocHJp
di0+aHR0cE1ldGhvZC5nZXQoKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKFN0cmlu
ZyB7IHByaXYtPmh0dHBNZXRob2QuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+aHR0cE1ldGhvZC5nZXQoKSkpOwogCiAjaWYg
VVNFKFNPVVApCiAgICAgLy8gQnkgZGVmYXVsdCwgSFRUUCBBY2NlcHQtRW5jb2RpbmcgaXMgZGlz
YWJsZWQgaGVyZSBhcyB3ZSBkb24ndApAQCAtNjgxLDcgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIHdl
YktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8
V2ViS2l0V2ViCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZvcm1hdGVkUmFuZ2UucmVzZXQo
Z19zdHJkdXBfcHJpbnRmKCJieXRlcz0lIiBHX0dVSU5UNjRfRk9STUFUICItIiwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24pKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSYW5n
ZSByZXF1ZXN0OiAlcyIsIGZvcm1hdGVkUmFuZ2UuZ2V0KCkpOwotICAgICAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZyB7IGZvcm1hdGVk
UmFuZ2UuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZvcm1hdGVkUmFuZ2UuZ2V0KCkp
KTsKICAgICB9CiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlYWRQb3NpdGlvbiA9PSBtZW1iZXJzLT5y
ZXF1ZXN0ZWRQb3NpdGlvbik7CiAKQEAgLTg4MSw3ICs4ODEsNyBAQCBjb25zdCBnY2hhciogY29u
c3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIAogc3RhdGljIFVSTCBjb252ZXJ0
UGxheWJpblVSSShjb25zdCBjaGFyKiB1cmlTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFVSTCB7IFN0
cmluZyB7IHVyaVN0cmluZyB9IH07CisgICAgcmV0dXJuIFVSTCB7IFN0cmluZzo6ZnJvbUxhdGlu
MSh1cmlTdHJpbmcpIH07CiB9CiAKIHN0YXRpYyBnY2hhciogd2ViS2l0V2ViU3JjR2V0VXJpKEdz
dFVSSUhhbmRsZXIqIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAppbmRleCAwNGVh
ZTAwY2E1NTM5ZTdkMmQ5YjI4Mzk1Y2U5YWUzZjY4NzEyMjlkLi5iYzUzOWE4NzQ3ODAyODE4MTNm
NmFmMzAwYWUyZTAyYjc2YWU2MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKQEAgLTEy
Miw5ICsxMjIsOSBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgQ0RNRmFjdG9yeVRodW5kZXI6OnN1
cHBvcnRlZEtleVN5c3RlbXMoKSBjb25zdAogICAgIGlmIChzdXBwb3J0ZWRLZXlTeXN0ZW1zLmlz
RW1wdHkoKSkgewogICAgICAgICBzdGQ6OnN0cmluZyBlbXB0eVN0cmluZzsKICAgICAgICAgaWYg
KG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2
aW5lS2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigpKSA9PSBFUlJPUl9OT05FKQotICAgICAg
ICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVL
ZXlTeXN0ZW0pKTsKICAgICAgICAgaWYgKG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVh
bWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigp
KSA9PSBFUlJPUl9OT05FKQotICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJF
TUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pKTsKICAgICAgICAgR1NUX0RFQlVHKCIl
enUgc3VwcG9ydGVkIGtleSBzeXN0ZW1zIiwgc3VwcG9ydGVkS2V5U3lzdGVtcy5zaXplKCkpOwog
ICAgIH07CiAgICAgcmV0dXJuIHN1cHBvcnRlZEtleVN5c3RlbXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0
aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRleCBkMmFkZTg3MzBjMDRlNzU1MDJjNmEwNDRh
MDE3OWM5MzI2YzllM2E4Li5hYTYxYzQxYWZjZTQ1YWNhMjE3YjdmNWVmN2RkY2U5MWVmYjI4ZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIqKiBzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqKj4oZ192YWx1ZV9n
ZXRfYm94ZWQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUpKTsKICAgICAgICAg
aWYgKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcykgewogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyArK2kpCi0g
ICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXNbaV0pOworICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5h
cHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XSkpOwogICAgICAgICB9CiAgICAgfQogICAgIGNvbnN0IEV2ZW50VmVjdG9yJiBldmVudHMoKSBj
b25zdCB7IHJldHVybiBtX2V2ZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cAppbmRleCAxYWYwZTU1NGQ4MmJhZTU4MTkzY2FjNjk3NWFhNWE3MzFlMGEzODVlLi4wYmIyMmQ1
MjU5MGVkZTI1NzhmMDRmMjZhNjE2ZjkxNjBjNDRiM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVu
ZFBpcGVsaW5lLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIHN0ZDo6dHVwbGU8R1JlZlB0cjxHc3RD
YXBzPiwgQXBwZW5kUGlwZWxpbmU6OlN0cmVhbVR5cGUsIEZsb2F0U2l6ZT4gQXBwZW5kUGlwZWxp
CiAKICAgICBjb25zdCBjaGFyKiBvcmlnaW5hbE1lZGlhVHlwZSA9IGNhcHNNZWRpYVR5cGUoZGVt
dXhlclNyY1BhZENhcHMpOwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xldG9uKCk7Ci0gICAgaWYgKCFnc3RSZWdpc3RyeVNj
YW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3Vy
YXRpb246OkRlY29kaW5nLCBTdHJpbmcgeyBvcmlnaW5hbE1lZGlhVHlwZSB9KSkgeworICAgIGlm
ICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nOjpmcm9tTGF0aW4xKG9yaWdp
bmFsTWVkaWFUeXBlKSkpIHsKICAgICAgICAgc3RyZWFtVHlwZSA9IFN0cmVhbVR5cGU6OkludmFs
aWQ7CiAgICAgfSBlbHNlIGlmIChkb0NhcHNIYXZlVHlwZShkZW11eGVyU3JjUGFkQ2FwcywgR1NU
X1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIHByZXNlbnRhdGlvblNpemUgPSBn
ZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2FwcyhkZW11eGVyU3JjUGFkQ2FwcykudmFsdWVfb3IoRmxv
YXRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKaW5kZXggZjFlYzYzMWE5N2UzYmRiMjliYTQxYjRjZDVmYzY2YTYxMTAxMzRhMC4u
MDFmMTBiNzhlNjE2ODk2MWEyMDUxNmUxYTE3NjRhMjUzOGE0N2ZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCkBAIC03NCw3ICs3NCw3
IEBAIEF0b21TdHJpbmcgR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbjo6ZXh0cmFjdENvZGVjTmFt
ZSgpCiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGVzY3JpcHRpb24oZ3N0X3BiX3V0
aWxzX2dldF9jb2RlY19kZXNjcmlwdGlvbihvcmlnaW5hbENhcHMuZ2V0KCkpKTsKLSAgICBTdHJp
bmcgY29kZWNOYW1lKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBhdXRvIGNvZGVjTmFtZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXNjcmlwdGlvbi5nZXQoKSk7CiAKICAgICAvLyBSZXBvcnQgIkgu
MjY0IChNYWluIFByb2ZpbGUpIiBhbmQgIkguMjY0IChIaWdoIFByb2ZpbGUpIiBqdXN0IGFzICJI
LjI2NCIgdG8gYWxsb3cgY2hhbmdlcyBiZXR3ZWVuIGJvdGggdmFyaWFudHMKICAgICAvLyBnbyB1
bm5vdGljZWQgdG8gdGhlIFNvdXJjZUJ1ZmZlciBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGI2MTUwZGE0M2Qx
Nzg0ZmQ1NTI1ZmJiZmE5Yjg1MjcwZWUwMzA5OWQuLjVkNTQxOWU4NDhlYTY2ZTQ1ZjVkODMzNWI1
Yzk2MmNlNjQ0NTlkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHNpemVfdCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCkgY29uc3QK
ICAgICAgICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScKICAgICAg
ICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcK
IAotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsK
KyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJNU0VfTUFY
X0JVRkZFUl9TSVpFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOwogICAgICAgICAgICAgZm9y
IChjb25zdCBTdHJpbmcmIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
LmNwcAppbmRleCA5MTk2M2QzMjkwOTNlMzZlMDRhMmQ5ZmFiMWMzZmRhYzM0NmYwYWZmLi5lZTY0
MzFhYzgwZTExMGY1NDk5Y2NlYzFkNWNjMGI2YmM1YTM2OGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgRXh0ZW5zaW9uc0dMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBBU1NFUlQo
IW1fdXNlSW5kZXhlZEdldFN0cmluZyk7Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6Omds
R2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
ZTkyMzI0YWNiZjdlNGZlMGFhYmUyOTIzNzM0NTIxNDY4NGNhZTI5Yy4uMmRjNjQ1NWI0NDI0MzMy
MTlkMTNmOTdiNjI3N2M4MDcyNWY1Njc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHAKQEAgLTc0LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpF
eHRlbnNpb25zR0xPcGVuR0xDb21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAg
ICAsIG1fcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwg
bV91c2VJbmRleGVkR2V0U3RyaW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5k
b3IgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhH
TF9WRU5ET1IpKSk7Ci0gICAgbV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfVkVORE9SKSkpOworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikp
KTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVu
dHMuY29udGFpbnMoIm52aWRpYSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKaW5k
ZXggYjkxMTEwMjU5ODM1ODkwZDY1MTNmYTAzM2MzMmY5NTFlN2VmZGJkOS4uZWRhZTEyOTJmMTg5
M2VkZDg0MjI0NGJmYTdmZmM0NTYwZDA5OGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBFeHRlbnNpb25zR0xPcGVuR0xFUzo6cGxh
dGZvcm1TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFN0cmluZyBFeHRl
bnNpb25zR0xPcGVuR0xFUzo6Z2V0RXh0ZW5zaW9ucygpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMp
KSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IDBh
NmE4OGNmMWFkNGM4NGQxMDAxNDRkMzU5NzU5Yjk1YWU3YjIzYmYuLjhmNTQ2NmE1YTNlN2JlOWVj
NmFjMDI5NTlhZmZkZTQ5ODViMDZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpnZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVu
dCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aGlu
dChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCmluZGV4IDY2ZGJlYzQwYWFjMmI3Mzk3YTE5MzMx
MTY2YzcyYmQ2MjYxNmUwNmUuLjI4NjViOGI4YWE0NDFjMzU5ZTJhNDZhMzRhZTY5ZWQ3ZTc3OTdi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyYg
VGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKQogI2lmIFVTRShPUEVOR0xfRVMp
CiAgICAgICAgIGF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCA9IHRydWU7CiAKLSAgICAgICAg
U3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xH
ZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgYXV0byBleHRlbnNpb25zU3RyaW5n
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9U
VGV4dHVyZXMgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVyZV9ucG90
Iik7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSA9IGV4dGVuc2lv
bnNTdHJpbmcuY29udGFpbnMoIkdMX0VYVF91bnBhY2tfc3ViaW1hZ2UiKTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckZQU0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBjN2ExYzI3MjVkM2QyZTJlZjli
ZTk3M2Q5Y2ZjOGNmYWI5OGI4OGRmLi45MDZmOWI0M2MwZTdlNzJlMWQyZDZmNmExZDc5M2Q5OGMx
MTBlM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OlRleHR1cmVNYXBwZXJGUFNDb3VudGVy
KCkKICAgICAsIG1fbGFzdEZQUygwKQogICAgICwgbV9mcmFtZUNvdW50KDApCiB7Ci0gICAgU3Ry
aW5nIHNob3dGUFNFbnZpcm9ubWVudCB7IGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikgfTsKKyAg
ICBhdXRvIHNob3dGUFNFbnZpcm9ubWVudCA9IFN0cmluZzo6ZnJvbUxhdGluMShnZXRlbnYoIldF
QktJVF9TSE9XX0ZQUyIpKTsKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgbV9mcHNJbnRlcnZh
bCA9IFNlY29uZHMoc2hvd0ZQU0Vudmlyb25tZW50LnRvRG91YmxlKCZvaykpOwogICAgIGlmIChv
ayAmJiBtX2Zwc0ludGVydmFsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYy
Yjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRkNWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJm
YmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0
cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25l
ZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIEdES19LRVlfS1Bf
RW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9C
YWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tleXZhbF90b191bmljb2RlKHZhbCk7CiAgICAg
ICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndw
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNi
NThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYzMC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5
NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGli
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcs
MTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFj
dGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAg
IGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAg
ICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQi
X3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2
ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0
MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0
cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4m
JiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VU
eXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9n
ZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhT
dHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0
YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgo
IlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNw
bGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5
Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0
UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkp
OwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8g
cmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAg
YXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vz
c2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1h
eWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZv
Q3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4u
MmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUlu
Zm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJ
bmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJp
ZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsg
WDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5n
KG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0
ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIs
IHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2
YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRl
eHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBj
b25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNv
ZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JD
b2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJp
bmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9u
c2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNz
LT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3Mt
PnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9y
dCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgi
OiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2
NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYx
N2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBA
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5
SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCog
c3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBT
dHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5n
IHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRf
Y3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4
OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUy
Yzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgs
NyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChj
b25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVf
ZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVy
ZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9t
YWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVy
biBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVz
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNX
aW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVm
YjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00
NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJh
Z0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNV
Q0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAg
ICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0
PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFj
dFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJp
bmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3Jl
LmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAt
NDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERy
YWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBm
aWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0
PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRh
ICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEp
KSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0
aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0g
VVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSku
ZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAg
ICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBA
QCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxz
ZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZz
dG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4
dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRh
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29s
IGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0
bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNV
UkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9z
KTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5m
aW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0x
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5k
ZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5
MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5n
UG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVY
VCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JE
YXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2
ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAg
ICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNi
RGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3Rh
dGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFs
VW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAg
ICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUK
ICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7
CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVy
ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAg
ICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0
YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2
OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcw
NjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYp
CiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYu
YXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQog
CiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4
LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNw
cAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFk
M2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAg
LTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9h
ZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFn
ZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25l
OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBTdHJpbmco
Ik5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIl9z
KTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAgICAgfQog
CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIv
V2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2Uu
Y3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3
NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJE
cml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6
cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJW
RVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciogdGFyZ2V0
RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAgdGFyZ2V0
U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9yIChpbnQg
aSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3Zb
aV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2
WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAg
ICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBw
b3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChh
cmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwoKSkgewot
ICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9ydFN0ckxl
bmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7CiAgICAg
ICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYgIWhvc3Qp
IHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7CisgICAg
ICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5ndGgpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEzIEBAIGlu
dCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAg
ICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdldFN0cmlu
ZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9IHN0cmxl
bigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdldD0iLCB0
YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3Ro
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1
NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhF
cnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lvbi0+aXND
b25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBw
YWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQs
IFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiJf
cykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3MTQsMTQg
QEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxp
dGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1aXJlZCBj
YXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5IEpTT04g
T2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVjdDo6Y3Jl
YXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVxdWlyZWRD
YXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2gg
aXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1
bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IHJlcXVp
cmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENh
cGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWlyZWRDYXBh
YmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAgVmVjdG9y
PENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25z
dCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QgPSBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFmaXJz
dE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBhbGwgZmly
c3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVycm9yIHdp
dGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RN
YXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVy
biB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2Fw
YWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpT
T046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2Fw
YWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRjaENhcGFi
aWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7
CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBp
biBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykpKTsKICAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBMZXQgdmFs
aWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBj
YXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMuCiAgICAg
ICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0
TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMp
IHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBm
aXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAg
ICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBW
ZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVz
KGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0
aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBT
dHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2
b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4mJiBw
YXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgogICAgIC8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAgaWYgKG1f
c2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4
aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Np
b25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJf
cykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQg
V2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFt
ZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dz
ZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChjYXBh
YmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0
ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0
aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5MDEsNyBA
QCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVk
VmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBp
biBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpT
T046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5n
KCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMg
aW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkz
NSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25z
dCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAi
a2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OktleURv
d247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5NTAs
MTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5n
IGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAg
ICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlmIChrZXku
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGlu
dmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5nbGUgdW5p
Y29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
ZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpk
dXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBp
biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBkdXJhdGlv
bi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50
ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMK
ICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkp
IHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRTdHJpbmco
U2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1l
bnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0aW9u
Iik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iX3Mp
OwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6
RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24m
IGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVyIikKICAg
ICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmln
aW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmln
aW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9z
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFj
dGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYg
KGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAgICAgYXV0
byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlm
ICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24ueCA9IHgu
dmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVy
TW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAg
ICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsKICAgICAg
ICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7CiAgICAg
ICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24u
eSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBh
cmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAgICAgIGFj
dGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yg
cG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwxMiArMjA3
NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9u
KGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBl
OjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewotICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1p
c3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2lu
dGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpidXR0b25W
YWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24i
X3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAg
ICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAt
MjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hl
ZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1
YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5
cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFj
dGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9
CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAg
aWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7
CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVhW
YWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZh
bGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3Ry
aW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFj
dGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFZ
ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAg
ICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZ
LnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2lu
dGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQog
CiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0
KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVj
dCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9i
amVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAgICAgIHBh
cmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUn
IGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBp
biBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkwLDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNl
cXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNlID0gYWN0
aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVuY2UpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5v
dCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9u
IHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vz
c2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNvdXJjZVR5
cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Np
bmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1
ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0
byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAoIWlkKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGlu
IGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxB
Y3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAKICAg
ICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwg
aW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUg
IT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3Qg
bWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJjZTo6VHlw
ZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlwZSkgewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5
cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0
IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5j
ZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZh
bGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90
IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNz
aW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kp
IHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+YXNPYmpl
Y3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVj
dCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0
aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1l
dGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRB
cnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBp
bnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVz
ZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
Z3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3
MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNj
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENh
cGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAg
ICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7
CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFdl
YkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNv
bnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VD
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3Nl
ckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElf
VkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93c2Vy
QmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9W
RVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3Nl
ckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogICAgIGNh
cGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNlL1dlYkRy
aXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4
M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJhZjM0M2Rm
NzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQo
KQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkK
IHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0
Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUg
PSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVl
OwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJp
dmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dl
YkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2
ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCisr
KyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3
ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxp
dGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmco
ImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNlOwogICAg
IHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBS
ZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5h
cnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5h
cnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFy
Z3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAgICAgYXV0
byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJv
d3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGEyMjlhODAyZTI4YjVlYjcxMTI4OGY1ZTMwYzI2MjUwOGFiMmQ5YmMuLjlm
NmI4ZThhNTEzYjc4MGZlNzdhMTBlNWE3ZWE3YzBkMDBjMTlmYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0w
NC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVu
Y29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRT
ZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVn
YXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRC
eUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAy
MDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVyZ2UtUXVldWVdIEFkZCBxdWV1ZSB0cmlnZ2VyZWQgYnkgbGFiZWwgYWRkaXRpb24gKEZv
bGxvdy11cCBmaXgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
cm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBi
MTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNw
cApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdp
bmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5o
YXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJp
bmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92
ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7
CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3Jp
Z2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAg
IFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhy
ZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwo
KS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVh
ZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVh
ZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdp
bmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2lu
YWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAg
ICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcg
QEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9z
c1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmlt
cGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpA
QCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9u
YWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0
cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAg
U3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdp
bmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4Njhj
Y2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgx
Yjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmls
ZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0g
ICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3Rf
ZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNj
ZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJp
bmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNo
YXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9U
UlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1
Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBA
QCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNh
c2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdl
cikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4
Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYz
LDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVy
LmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsK
LSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
MTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVy
MS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgo
KSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJh
Y3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNY
WVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAs
NTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAg
c3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVk
U3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5n
LmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZy
b21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
J2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9z
LCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVy
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxz
ZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
ICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFr
ZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJp
bmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1i
aXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWls
ZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVs
bHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdo
ZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwg
YnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24n
dCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScs
ICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVy
LmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNl
eWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAg
ICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwog
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3Ry
aW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0
eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAg
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJp
bmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBz
dHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
ZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgog
ICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8v
IFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5h
bCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAg
dW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNh
cGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBj
YXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDAp
OwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJB
QkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQg
bm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0
eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVy
LmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEp
OwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7
CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNh
cGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEo
c3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRl
ci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENs
ZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXpl
KQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmso
MTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwog
ICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWls
ZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDAp
OwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRl
cjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwot
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQo
IjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIu
YXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1
aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWls
ZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIy
KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIg
IT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1
aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwog
ICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBA
QCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0
b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9t
U3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNU
X1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQy
N2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAg
LTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5n
QVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJp
bmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVF
KHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsK
ICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmlu
ZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0
YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VS
VF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIp
KTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVt
cHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0
c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5
NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYz
MGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAg
ICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwg
bGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFj
a2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJT
dHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0Jh
Y2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0
YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQw
OWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dp
dGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1Zp
ZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0
aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJo
ZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENo
YXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dp
dGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0
eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcg
dmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3
V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3
V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJh
Y3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdW
aWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJp
bmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21w
YXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCks
IHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVs
byJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBv
aW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdU
RiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRv
ciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVY
UEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndl
YmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRD
b2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9p
bnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRz
SXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdW
aWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVs
bG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygi
Q29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJp
bmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhT
dHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIp
KS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdp
c2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUz
ZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRk
OTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYw
LDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBF
Q1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgp
ID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29t
IiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5l
eGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVF
KCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
L2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5k
ZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5o
YXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQi
KSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJh
Z21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBj
cmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0
YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZf
VVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJM
KCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFt
ZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAv
aW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZp
bGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91
c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwj
ZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAg
LTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsK
ICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZh
bDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3Rv
cjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJM
LCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwx
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwg
dXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwog
ICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJr
ZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAg
IAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkx
PXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9
LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9z
LCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVy
bDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAg
VVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZr
ZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5
MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwz
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1
cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJM
IHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwz
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwg
eyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwx
Il9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRl
c3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVS
TCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0s
IHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3Mg
fSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjAp
OwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsg
Ii8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7
CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Pz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3Mg
fSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVy
bDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVy
bDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7
eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3Mg
fSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1
cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0i
fSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwg
dGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0
ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwg
dGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJl
YjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0
b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJr
MSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3Ry
aW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYz
IiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywg
InYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVk
ID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIp
IC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFm
NjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIz
NmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5n
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBA
IC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAg
ICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0
IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21M
aXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVj
dGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmlu
ZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9F
UShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsK
ICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAg
IEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAK
IFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmlu
Z1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBT
dHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmlu
Z1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVy
cygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3Rh
cnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3Rl
cnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAg
ICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVz
dWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUo
cmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9
CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1
MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlT
dHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIw
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91
YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUo
KSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
eDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBz
dWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUo
KSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCBy
ZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3Rl
bmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCBy
ZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBv
bmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBz
dWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0
KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5m
aXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
VGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
InN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVz
dCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVD
VF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsK
IAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAg
LTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAg
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4
KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWb
vSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4
rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhh
c0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJU
ZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsK
IH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
MSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRl
cmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5o
YXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkK
IAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVD
VF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJp
dCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXgg
ZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNm
MTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3
OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAg
ICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsy
XSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkg
fSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFT
Q0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkp
LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVND
SUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6
OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0
UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2
ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0
MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25p
dG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0
b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0
RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWRE
YXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRl
eHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhp
cyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBG
aWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5n
OjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUy
Nzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVl
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFk
ZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBI
ZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBh
cnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAog
ICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJ
SUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50
IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6
ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6
OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAg
ICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmll
bGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3Ms
CiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbElu
UXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0p
OwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2Nj
ZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEw
ODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRD
b2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENv
ZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRE
b3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBF
Q1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3Ry
aW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0
IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5j
b2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcs
IFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlz
dGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1
YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFj
ZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAg
LTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUu
XHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3Ry
aW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmco
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9F
UShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21h
aW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0
LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJs
LnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54
bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJk
b21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAu
MSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5j
b20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9F
UShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7
CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0
cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBs
ZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9z
dCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLD
pcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBs
ZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3Qi
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGlu
MSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2Nm
Yjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4
YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRh
YmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
cmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihz
Y29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAg
c25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAg
ICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50
b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3Jk
KHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVF
KHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
U2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1
MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00
Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50
ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewot
ICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUo
U3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
X3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRF
U1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlz
dGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7
CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtl
Q29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6
ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0
aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXgg
ZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4
NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEz
OSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNv
ZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPD
n/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAl
OUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4
RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7
CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAg
UEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDov
L2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRo
JTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUy
MHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRp
bjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9
KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAi
cXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1
MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNv
ZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVk
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsK
ICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9z
LCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6
OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpU
ZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1
dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hl
Y2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1
OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
L3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hv
c3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5n
KCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMz
JTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5
QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMy
ODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJh
ZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAt
OTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8v
IEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24g
ZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCBy
ZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0
b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0g
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmlu
Zyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9y
eVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0
Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwg
RGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4g
YWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBz
dGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0
aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndl
YlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldl
YlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNl
VHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJf
cywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFz
ZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQog
ICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBP
cmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQg
ZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpj
cmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAt
MjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAg
ICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRh
YmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1h
dGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQog
ICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRo
YXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUg
dGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBO
U1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGly
ZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tl
cj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNl
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNm
ZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3
MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRl
bnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1
NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dv
QmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6Igog
ICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5Z
ejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOwor
ICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcg
cGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lq
QU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcg
QEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhv
dTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5Y
YyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtK
WHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hC
OUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFD
eCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAog
ICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRl
S2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2Rl
ZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4
N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1
Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZv
aWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0
eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5z
dHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUo
KSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3Ry
aW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3Vy
Y2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0
aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5
ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNv
dXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJs
ZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVz
dDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5
Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVz
dDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9p
ZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5
IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNp
emUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtl
eSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJz
b3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1
ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFy
dCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFu
ZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0
VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6
dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5f
c2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5n
UGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3Jl
dF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5f
c2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyIn
LCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkz
Y2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1
NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTcz
ODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZp
Z2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBO
bywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZ
ZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291
cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25D
T09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmln
aW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2Fw
IGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0
ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRl
c3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2lu
IGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3Qs
IEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAg
c291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAg
aWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAg
ICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJj
ZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQ
KTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAg
ICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3Mp
OwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09Q
KSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0g
ICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xp
Y3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQ
KTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0
aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6Omlu
aXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQ
U2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZv
aWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBj
aGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNv
blByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9w
dE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NP
cmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1v
cmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29y
cCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBk
ZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIp
ICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUt
Y29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291
cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3Jw
Il9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBk
ZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAi
cmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBl
eHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
QEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1u
b25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1j
b3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2Ug
dGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2Ug
aXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJl
Y3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vz
bid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olllcywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRo
UmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVj
dCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMg
Ym9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZl
Y2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVM
aXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIg
c2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5y
ZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9
fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9
LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAi
YXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCku
c2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9
XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwg
ImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwg
ZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5t
bQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAy
ODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48
aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7
Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZy
YW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lm
cmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRt
bD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5
LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7
CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXgg
YTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4
ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3
IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4
dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0g
W05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRd
XTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmlu
ZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAg
IGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXgg
YzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1
MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVt
ZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1
ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwog
ICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3Ry
aW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Il9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQy
MjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0
ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpA
QCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlz
aGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmlu
ZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhi
MzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNv
Y2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRs
ZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAx
LCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAg
IHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2Nr
ZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAg
eyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlv
biJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0
Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6
ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVj
dGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWlu
dDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQ
SDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAi
bU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNB
ZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBO
VTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVz
PSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBh
dXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNh
dGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcg
KzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAg
ICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhm
NGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlX
ajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1
QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJk
YnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBI
TGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNv
ZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJp
dmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5j
cHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJh
MGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMy
YzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVy
L21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAt
NTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQg
dGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07
CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmlu
Z0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7
ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1w
bCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmlu
ZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBT
dHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3Ry
aW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5n
ID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485606"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457118</attachid>
            <date>2022-04-08 14:30:47 -0700</date>
            <delta_ts>2022-04-08 16:51:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408143046.patch</filename>
            <type>text/plain</type>
            <size>168300</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIwYmI2ZDg1NjVlYTdlZjA2OTYzMDlm
MTVkNzE2YjczNjY5YTdmNDAuLjFkMDVhZjU0MjBiOGY5ZjEwM2E0MTEzODgzYTY3ZTk2NDliNWI4
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2FkZW4gVHlw
ZWRBcnJheSBBUEkgZml4IHRvIGFsbCBhcHBzIG5vdCBqdXN0IEJsZWFjaGVyIFJlcG9ydApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDgyNDc4MzI5M2U4MzNlYmNkY2M3Zjc0M2I5ZDA4NGE1MTE2ODNjNDQuLmM2YTFj
ZjljYTc0ZGU1NDU0ZmViMDViMjljNjJjMGFhYTY1YzBmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBh
bmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5uZWxFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmZXRjaERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxpbmVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFF
bmRwb2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsUlRDU3RhdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxPdXRib3Vu
ZFJUUFN0cmVhbVN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0VuY29k
aW5nUGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1
ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3lzdGVtRXZlbnRzOjpQcm90ZWN0aW9u
U3lzdGVtRXZlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb246
OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVu
c2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyk6CisKIDIwMjItMDQtMDggIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1pbigpIGFzIHRoZSBpbml0aWFsIHZhbHVlIHRvIGNvbGxl
Y3QgbWF4IHZhbHVlcyBmb3IgZ2x5cGggb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2EyNjNkYjhh
YjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNl
cnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgor
ICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rp
b24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFj
dGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAg
IChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2
ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJT
ZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25z
dCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2Ew
ODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYx
MTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlz
dGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVj
dGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAg
LCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwg
cG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFlMjc3Njk3
ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNjZTgyOWJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBudWxsLXRl
cm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgVUNo
YXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRhLgorICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBv
ZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkuCi0gICAg
Ly8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9ydGVkLgot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGluMShjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07IH0KIAog
ICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTdHJpbmdJ
bXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxv
d0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBzZXBhcmF0
b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZlY3RvcjxT
dHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0OwogCisgICAg
Ly8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkgLyBmcm9t
VVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAgICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyLi44YmUy
ZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9M
YW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gYWx3
YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKIHsK
LSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9jYWxlKExD
X0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4gImVuLVVT
Il9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZjZTI1Y2E1
ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGViNjA0ODM1
MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJXRUJLSVRf
REVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5vdGljZSB0
aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBidWlsZC4i
KTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCBi
YTdiYTlhMDA1OTZkNjUwZTRjN2IzZjc4M2M3MjdiMjFhNTVkZDY2Li5hNmU1NDkxMTViOTIzNmZm
MjllMTFhOGQ5YzExM2JmMDY5MzY4ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJUQ0RhdGFD
aGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0YUNoYW5u
ZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQubWF4UGFj
a2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJhbnNtaXRz
ID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90b2NvbC5n
ZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9jb2wuZ2V0
KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5
ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1
MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVu
dCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190
ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0Jpbiwg
IiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJl
dHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwg
U3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Np
b25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3Rh
dGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyAr
NDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5m
byhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1
YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFG
b3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUs
ICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3Rz
LzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxp
dGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6
YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0
cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dl
dF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxh
YmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFr
ZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicp
OwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2Nl
ZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdz
dF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1f
aXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVP
ZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEo
c2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzEx
MjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMo
KQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihX
VEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1
cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtl
VW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSks
IG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJh
Li41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkK
IHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNU
cmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJl
dHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpz
dG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRl
eCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0
MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2
b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RT
dHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0
YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9z
dHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlk
IikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0
YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0
YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3Rh
dHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3Ry
aW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2Rl
Yy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dl
dF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9y
dDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3Vu
dDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBT
dHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJv
bUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJp
dHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZh
MTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYzY2MwYWEx
MWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJS
VENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFt
ZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUg
PSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJz
LnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFt
ZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OwogICAg
IGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxlLXJlc29s
dXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYwMGRlNDFh
YTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTkw
NCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciogcmVhc29u
ID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9IHRhcmdl
dEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0ICE9IEdy
YXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBTdHJpbmcg
c3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVhc29uKTsK
KyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVy
U3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5kZXggM2Fk
Mzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkwZTNiZTky
MTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
c291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihzdGF0aWNf
Y2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9yLm91dFB0
cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXItPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9t
TGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHVy
bCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6Omxv
YWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y29u
c3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXplKSk7CiAg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZSh1cmwu
cGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb250ZW50
VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0YVNpemUs
IG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29udGVudFR5
cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJp
bmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJzZXRGcm9t
TWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBj
MDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFjMTAwMzIy
YzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkg
Y29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKLSAgICAg
ICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogU3RyaW5n
KCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+
PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5pc29sYXRl
ZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKaW5kZXggYzVk
ZTFiNjhiNWNjY2E0YjhjOTg1M2IzMzhiNDk4MjE4ZTE0Mzg5YS4uYjI4YTVhNGU4ZjZmNzY1MDIx
OWU3MjIwYWYwYjQ3NDhlMjAxN2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcApAQCAtMTg2LDEzICsxODYsMTMg
QEAgYm9vbCBBTkdMRVdlYktpdEJyaWRnZTo6Y29tcGlsZVNoYWRlclNvdXJjZShjb25zdCBjaGFy
KiBzaGFkZXJTb3VyY2UsIEFOR0xFU2hhZGUKICAgICBpZiAoIXZhbGlkYXRlU3VjY2Vzcykgewog
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbG9nID0gc2g6OkdldEluZm9Mb2coY29tcGlsZXIp
OwogICAgICAgICBpZiAobG9nLmxlbmd0aCgpKQotICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZyB7IGxvZy5jX3N0cigpIH07CisgICAgICAgICAgICBzaGFkZXJWYWxpZGF0
aW9uTG9nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZy5jX3N0cigpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvYmplY3RDb2RlID0gc2g6
OkdldE9iamVjdENvZGUoY29tcGlsZXIpOwogICAgIGlmIChvYmplY3RDb2RlLmxlbmd0aCgpKQot
ICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nIHsgb2JqZWN0Q29kZS5jX3N0
cigpIH07CisgICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0Q29kZS5jX3N0cigpKTsKICAgICAKICAgICBpZiAoIWdldFN5bWJvbEluZm8oY29t
cGlsZXIsIFNIQURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUsIHN5bWJvbHMpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcAppbmRleCA3ZDAwNTdmYzI5ZDY2MDdkY2Q1N2VjMmRlNzkxYzM3YTQ0NmVkZDgxLi5l
MGY4MDA2Y2YxOTRlNDE2MDkwZDFiYzFmZjQ3MjJhOTNlMWI0MTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTE3Niw3ICsxNzYsNyBA
QCB1bnNpZ25lZCBHTENvbnRleHQ6OnZlcnNpb24oKQogICAgIGlmICghbV92ZXJzaW9uKSB7CiAg
ICAgICAgIC8vIFZlcnNpb24gc3RyaW5nIGNhbiBzdGFydCB3aXRoIHRoZSB2ZXJzaW9uIG51bWJl
ciAoYWxsIHZlcnNpb25zIGV4Y2VwdCBHTEVTIDEgYW5kIDIpIG9yIHdpdGgKICAgICAgICAgLy8g
Ik9wZW5HTCIuIERpZmZlcmVudCBmaWVsZHMgaW5zaWRlIHRoZSB2ZXJzaW9uIHN0cmluZyBhcmUg
c2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSAgICAgICAgU3RyaW5nIHZlcnNpb25TdHJpbmcgPSBTdHJp
bmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9O
KSkpOworICAgICAgICBhdXRvIHZlcnNpb25TdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9OKSkpOwog
ICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uU3RyaW5nQ29tcG9uZW50cyA9IHZlcnNpb25T
dHJpbmcuc3BsaXQoJyAnKTsKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uRGlnaXRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZmQ5Zjc4ZTdkMjE0ZTg5OTA4YTA2NThhYmRmNmU5NTcwNjk3ZmJiNi4uMzI0MjA5MDY4N2Y3Nzgx
ZWUwZDNiNGQ2YWZjNTBlZmY0ZGY2M2E4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1Rf
Q0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9j
b2RlY191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1
cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9u
LmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAg
Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAK
aW5kZXggN2EzNjI2M2ZlMDExMzQ0MGU1NDU2YzE5MmQ5YTE4NDUyOWM5NWI5OC4uZDQyMGQ0ODEz
OTMzYjlmNTljZmNmZTc0YmU4ZmMzNjdlNGQzYTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VHc3RTdHJ1Y3R1
cmVWYWx1ZShHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogewogICAg
IGlmIChhdXRvIGpzb25WYWx1ZSA9IGdzdFN0cnVjdHVyZVZhbHVlVG9KU09OKHZhbHVlKSkgewog
ICAgICAgICBhdXRvKiBvYmplY3QgPSByZWludGVycHJldF9jYXN0PEpTT046Ok9iamVjdCo+KHVz
ZXJEYXRhKTsKLSAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmcgeyBnX3F1YXJrX3RvX3N0
cmluZyhmaWVsZElkKSB9LCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBv
YmplY3QtPnNldFZhbHVlKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhmaWVs
ZElkKSksIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJldHVybiBU
UlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRl
eCBiZDZiZTZmN2E2MzBlMzZjYzdiZjE1ODUyYjYwZTIyMWIxNjcyNDc1Li42N2Q3MGNiY2Y3MjMy
M2UyMDkzOTI0MGQ0ZDQ3MGM0MzgxMTY2MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
UmVnaXN0cnlTY2FubmVyLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIEdTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpF
bGVtZW50CiAgICAgaWYgKHNob3VsZENoZWNrSGFyZHdhcmVDbGFzc2lmaWVyID09IENoZWNrSGFy
ZHdhcmVDbGFzc2lmaWVyOjpZZXMpIHsKICAgICAgICAgZm9yIChHTGlzdCogZmFjdG9yaWVzID0g
Y2FuZGlkYXRlczsgZmFjdG9yaWVzOyBmYWN0b3JpZXMgPSBnX2xpc3RfbmV4dChmYWN0b3JpZXMp
KSB7CiAgICAgICAgICAgICBhdXRvKiBmYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVt
ZW50RmFjdG9yeSo+KGZhY3Rvcmllcy0+ZGF0YSk7Ci0gICAgICAgICAgICBTdHJpbmcgbWV0YWRh
dGEgeyBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1RfRUxFTUVO
VF9NRVRBREFUQV9LTEFTUykgfTsKKyAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBTdHJpbmc6
OmZyb21MYXRpbjEoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NU
X0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpKTsKICAgICAgICAgICAgIGF1dG8gY29tcG9uZW50cyA9
IG1ldGFkYXRhLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5jb250YWlu
cygiSGFyZHdhcmUiKSkgewogICAgICAgICAgICAgICAgIGlzVXNpbmdIYXJkd2FyZSA9IHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4
IGFiZDM2Mjk2MmE0MzU2MDgyMjMzY2IxNGE5OTA3ZDkwNjM0YTZkYzcuLjAxZmVmZWEzMmQyMTM2
ZGZkMWUxZjNjMjViODE2MjY5NjkwZmJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUm
LCBNZWRpYVNvdXIKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKE1lZGlh
U3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIG1fc3RyZWFtUHJpdmF0ZSA9ICZzdHJlYW07
Ci0gICAgbG9hZChTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIikgKyBzdHJlYW0uaWQoKSk7CisgICAg
bG9hZChtYWtlU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIsIHN0cmVhbS5pZCgpKSk7CiAgICAgc3lu
Y09uQ2xvY2soZmFsc2UpOwogCiAgICAgbV9wbGF5ZXItPnBsYXkoKTsKQEAgLTE3MzUsNyArMTcz
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKG1lc3Nh
Z2UsICZlcnIub3V0UHRyKCksICZkZWJ1Zy5vdXRQdHIoKSk7CiAgICAgICAgIEdTVF9FUlJPUigi
RXJyb3IgJWQ6ICVzICh1cmw9JXMpIiwgZXJyLT5jb2RlLCBlcnItPm1lc3NhZ2UsIG1fdXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
IHsgZXJyLT5tZXNzYWdlIH07CisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGVyci0+bWVzc2FnZSk7CiAKICAgICAgICAgZXJyb3IgPSBNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpFbXB0eTsKICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnIuZ2V0KCks
IEdTVF9TVFJFQU1fRVJST1IsIEdTVF9TVFJFQU1fRVJST1JfQ09ERUNfTk9UX0ZPVU5EKQpAQCAt
MTg4OSw3ICsxODg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZWxzZSBpZiAoZ3N0X3N0cnVj
dHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJodHRwLWhlYWRlcnMiKSkgewogICAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUHJvY2Vzc2luZyBIVFRQIGhlYWRlcnM6ICUi
IEdTVF9QVFJfRk9STUFULCBzdHJ1Y3R1cmUpOwogICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIq
IHVyaSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ1cmkiKSkgewotICAg
ICAgICAgICAgICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgICAgICAgICAgICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgICAgICAgICAgICAgIG1f
b3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIAogICAgICAgICAgICAg
ICAgIGlmICh1cmwgIT0gbV91cmwpIHsKQEAgLTIxNjYsNyArMjE2Niw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb25maWd1cmVEb3dubG9hZEJ1ZmZlcihHc3RFbGVtZW50
KiBlbGVtZW50KQogICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidGVtcC10ZW1wbGF0ZSIsIG5l
d0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG51bGxwdHIpOwogICAgIEdTVF9ERUJVR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIlJlY29uZmlndXJlZCBmaWxlIGRvd25sb2FkIHRlbXBsYXRlIGZyb20gJyVz
JyB0byAnJXMnIiwgb2xkRG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbmV3RG93bmxvYWRUZW1wbGF0
ZS5nZXQoKSk7CiAKLSAgICBTdHJpbmcgbmV3RG93bmxvYWRQcmVmaXhQYXRoIHsgbmV3RG93bmxv
YWRUZW1wbGF0ZS5nZXQoKSB9OworICAgIGF1dG8gbmV3RG93bmxvYWRQcmVmaXhQYXRoID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogICAgIHB1cmdlT2xk
RG93bmxvYWRGaWxlcyhuZXdEb3dubG9hZFByZWZpeFBhdGgucmVwbGFjZSgiWFhYWFhYIiwgIiIp
KTsKIH0KIApAQCAtMjQ3MCwxMSArMjQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIC8vIHRob3VnaC4gV2UgbmVlZCB0
byB0YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVybCBhbmQKICAgICAgICAgLy8gYXBwZW5k
IHRoZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQuCiAgICAgICAgIFVSTCBiYXNlVXJsID0g
Z3N0X3VyaV9pc192YWxpZChuZXdMb2NhdGlvbikgPyBVUkwoKSA6IG1fdXJsOwotICAgICAgICBV
UkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZyB7IG5ld0xvY2F0aW9uIH0pOworICAgICAg
ICBVUkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZzo6ZnJvbUxhdGluMShuZXdMb2NhdGlv
bikpOwogCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHBsYXliaW5VcmxTdHI7CiAgICAg
ICAgIGdfb2JqZWN0X2dldChtX3BpcGVsaW5lLmdldCgpLCAiY3VycmVudC11cmkiLCAmcGxheWJp
blVybFN0ci5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgICAgIFVSTCBwbGF5YmluVXJsIHsgU3Ry
aW5nIHsgcGxheWJpblVybFN0ci5nZXQoKSB9IH07CisgICAgICAgIFVSTCBwbGF5YmluVXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHBsYXliaW5VcmxTdHIuZ2V0KCkpIH07CiAKICAgICAgICAgaWYg
KHBsYXliaW5VcmwgPT0gbmV3VXJsKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJQbGF5YmluIGFscmVhZHkgaGFuZGxlZCByZWRpcmVjdGlvbi4iKTsKQEAgLTI1
OTksNyArMjU5OSw3IEBAIGJvb2wgaXNNZWRpYURpc2tDYWNoZURpc2FibGVkKCkKICNpZiBQTEFU
Rk9STShXUEUpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgc3RkOjpjYWxs
X29uY2Uob25jZSwgW10oKSB7Ci0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJXUEVfU0hF
TExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FD
SEUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFN0cmluZyB2
YWx1ZSA9IHMuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2Fs
ZSgpOwogICAgICAgICAgICAgcmVzdWx0ID0gKHZhbHVlID09ICIxIiB8fCB2YWx1ZSA9PSAidCIg
fHwgdmFsdWUgPT0gInRydWUiKTsKQEAgLTM5MTgsNyArMzkxOCw3IEBAIEluaXREYXRhIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFyc2VJbml0RGF0YUZyb21Qcm90ZWN0aW9uTWVzc2Fn
ZShHc3RNZXNzCiAgICAgICAgICAgICBHc3RCdWZmZXIqIGRhdGEgPSBudWxscHRyOwogICAgICAg
ICAgICAgZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQuZ2V0KCksICZldmVudEtleVN5
c3RlbUlkLCAmZGF0YSwgbnVsbHB0cik7CiAKLSAgICAgICAgICAgIGluaXREYXRhLmFwcGVuZCh7
IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtSWQgfSwgZGF0YSB9KTsKKyAgICAgICAgICAgIGluaXRE
YXRhLmFwcGVuZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbUlkKSwgZGF0YSB9
KTsKICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdTVF9FVkVOVF9T
RVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMzksNyArNDAzOSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQcm90ZWN0aW9uRXZl
bnQoR3N0RXZlbnQqIGV2ZW50KQogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVtVVVJRCA9
IG51bGxwdHI7CiAgICAgR3N0QnVmZmVyKiBpbml0RGF0YSA9IG51bGxwdHI7CiAgICAgZ3N0X2V2
ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQsICZldmVudEtleVN5c3RlbVVVSUQsICZpbml0RGF0
YSwgbnVsbHB0cik7Ci0gICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoeyBTdHJpbmcg
eyBldmVudEtleVN5c3RlbVVVSUQgfSwgaW5pdERhdGEgfSk7CisgICAgaW5pdGlhbGl6YXRpb25E
YXRhRW5jb3VudGVyZWQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1VVUlEKSwg
aW5pdERhdGEgfSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp3YWl0
aW5nRm9yS2V5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmNwcAppbmRleCAwM2VkYWM4YzhlOTdiYjFlYWE0YjMzYjNmNDQ1OWFjZGFkZmI5NDc0Li4y
OTU3YmNlZjNkMGQwZTE4MjhlZjVkZjdiZjhiY2U1ZGVjMmY4ZDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgYm9v
bCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpnZXRMYW5ndWFnZUNvZGUoR3N0VGFnTGlzdCog
dGFncywgQXRvbVN0cmluZyYgdmEKIHsKICAgICBTdHJpbmcgbGFuZ3VhZ2U7CiAgICAgaWYgKGdl
dFRhZyh0YWdzLCBHU1RfVEFHX0xBTkdVQUdFX0NPREUsIGxhbmd1YWdlKSkgewotICAgICAgICBs
YW5ndWFnZSA9IFN0cmluZyB7IGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxh
bmd1YWdlLnV0ZjgoKS5kYXRhKCkpIH07CisgICAgICAgIGxhbmd1YWdlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxhbmd1YWdlLnV0Zjgo
KS5kYXRhKCkpKTsKICAgICAgICAgR1NUX0RFQlVHKCJDb252ZXJ0ZWQgdHJhY2sgJWQncyBsYW5n
dWFnZSBjb2RlIHRvICVzLiIsIG1faW5kZXgsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICBpZiAobGFuZ3VhZ2UgIT0gdmFsdWUpIHsKICAgICAgICAgICAgIHZhbHVlID0gbGFuZ3Vh
Z2U7CkBAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpn
ZXRUYWcoR3N0VGFnTGlzdCogdGFncywgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIFMKICAgICBHVW5p
cXVlT3V0UHRyPGdjaGFyPiB0YWdWYWx1ZTsKICAgICBpZiAoZ3N0X3RhZ19saXN0X2dldF9zdHJp
bmcodGFncywgdGFnTmFtZSwgJnRhZ1ZhbHVlLm91dFB0cigpKSkgewogICAgICAgICBHU1RfREVC
VUcoIlRyYWNrICVkIGdvdCAlcyAlcy4iLCBtX2luZGV4LCB0YWdOYW1lLCB0YWdWYWx1ZS5nZXQo
KSk7Ci0gICAgICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IHRhZ1ZhbHVlLmdldCgpIH07CisgICAg
ICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IFN0cmluZzo6ZnJvbUxhdGluMSh0YWdWYWx1ZS5nZXQo
KSkgfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKaW5kZXggZDdi
ZTgwNTE4ZWQ2OWVjZWNkNzE2ZmFiMjMyMzBmOGM3NjBiOTZjNS4uMzA1ZTUxYWZmNzVjNWZiMGJh
M2FlYWQyYTE1NDMwZjJjYTRmNGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVN
ZXRhZGF0YUdTdHJlYW1lci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIHdlYmtpdEdzdFRy
YWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgZ3N0
X3BhZF9hZGRfcHJvYmUoc2lua1BhZC5nZXQoKSwgcHJvYmVUeXBlLCBbXShHc3RQYWQqLCBHc3RQ
YWRQcm9iZUluZm8qIGluZm8sIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVy
biB7CiAgICAgICAgIGF1dG8gW21vZGlmaWVkQnVmZmVyLCBtZXRhXSA9IGVuc3VyZVZpZGVvRnJh
bWVNZXRhZGF0YShHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8pKTsKICAgICAgICAgR1NU
X1BBRF9QUk9CRV9JTkZPX0RBVEEoaW5mbykgPSBtb2RpZmllZEJ1ZmZlcjsKLSAgICAgICAgbWV0
YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmcgeyByZWludGVycHJldF9jYXN0PGNo
YXIqPih1c2VyRGF0YSkgfSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgp
LCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CisgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdU
aW1lcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJE
YXRhKSksIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NL
X1RJTUVfTk9ORSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKICAgICB9LCBn
c3RfZWxlbWVudF9nZXRfbmFtZShlbGVtZW50KSwgZ19mcmVlKTsKIApAQCAtMTM1LDcgKzEzNSw3
IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVu
dCogZWxlbWVudCkKICAgICAgICAgaWYgKCFtZXRhKQogICAgICAgICAgICAgcmV0dXJuIEdTVF9Q
QURfUFJPQkVfT0s7CiAKLSAgICAgICAgU3RyaW5nIGVsZW1lbnROYW1lIHsgcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4odXNlckRhdGEpIH07CisgICAgICAgIGF1dG8gZWxlbWVudE5hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKTsKICAgICAg
ICAgYXV0byB2YWx1ZSA9IG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5nZXQoZWxlbWVudE5h
bWUpOwogICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KGVsZW1lbnROYW1l
LCBzdGQ6Om1ha2VfcGFpcih2YWx1ZS5maXJzdCwgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpKSk7
CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZDY0MDRjMTIwY2E4YWRlMTBmNzVlYjdi
OWIzYWRjMmQ1YzNkMzkwYS4uOTZkZmNmYzEyY2VjN2NiYzA0ZTNkM2NmYjU5OWU1NzM1ZTMyM2Uz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRl
Q29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAw
KQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21p
bWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcg
eyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCBkMGFkNjcyZDcxMDk3Y2Y5MTJhMTczMjI3MDVkZjBlZWQzYzIwOGUzLi5kNTExZGExMDAxOWNi
NDFkMmU4ODY0NGMzZjNhOTliNzcxN2Y4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBib29sIHdlYktp
dFdlYlNyY1NldEV4dHJhSGVhZGVyKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVl
LCBncG9pCiAKICAgICBHU1RfREVCVUcoIkFwcGVuZGluZyBleHRyYSBoZWFkZXI6IFwiJXM6ICVz
XCIiLCBmaWVsZE5hbWUsIGZpZWxkQ29udGVudC5nZXQoKSk7CiAgICAgUmVzb3VyY2VSZXF1ZXN0
KiByZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Kj4odXNlckRhdGEpOwotICAg
IHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcgeyBmaWVsZE5hbWUgfSwgU3RyaW5n
IHsgZmllbGRDb250ZW50LmdldCgpIH0pOworICAgIHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVs
ZChTdHJpbmc6OmZyb21MYXRpbjEoZmllbGROYW1lKSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxk
Q29udGVudC5nZXQoKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NDQsNyArNjQ0LDcg
QEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMs
IERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBBU1NFUlQobWVtYmVycy0+cmVxdWVzdGVk
UG9zaXRpb24gIT0gbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKIAogICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiUG9zdGluZyB0YXNrIHRvIHJlcXVlc3QgUiV1ICVzIHJlcXVlc3RlZFBvc2l0aW9u
PSUiIEdfR1VJTlQ2NF9GT1JNQVQgIiBzdG9wUG9zaXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCwg
bWVtYmVycy0+cmVxdWVzdE51bWJlciwgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpLCBtZW1iZXJz
LT5yZXF1ZXN0ZWRQb3NpdGlvbiwgbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKLSAgICBVUkwgdXJs
IHsgU3RyaW5nIHsgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpIH0gfTsKKyAgICBVUkwgdXJsIHsg
U3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSkgfTsKIAogICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMo
dHJ1ZSk7CkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJl
cXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBy
ZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihtZW1iZXJzLT5yZWZlcnJlcik7CiAKICAgICBpZiAocHJp
di0+aHR0cE1ldGhvZC5nZXQoKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKFN0cmlu
ZyB7IHByaXYtPmh0dHBNZXRob2QuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZChTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+aHR0cE1ldGhvZC5nZXQoKSkpOwogCiAjaWYg
VVNFKFNPVVApCiAgICAgLy8gQnkgZGVmYXVsdCwgSFRUUCBBY2NlcHQtRW5jb2RpbmcgaXMgZGlz
YWJsZWQgaGVyZSBhcyB3ZSBkb24ndApAQCAtNjgxLDcgKzY4MSw3IEBAIHN0YXRpYyB2b2lkIHdl
YktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8
V2ViS2l0V2ViCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZvcm1hdGVkUmFuZ2UucmVzZXQo
Z19zdHJkdXBfcHJpbnRmKCJieXRlcz0lIiBHX0dVSU5UNjRfRk9STUFUICItIiwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24pKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSYW5n
ZSByZXF1ZXN0OiAlcyIsIGZvcm1hdGVkUmFuZ2UuZ2V0KCkpOwotICAgICAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZyB7IGZvcm1hdGVk
UmFuZ2UuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZvcm1hdGVkUmFuZ2UuZ2V0KCkp
KTsKICAgICB9CiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlYWRQb3NpdGlvbiA9PSBtZW1iZXJzLT5y
ZXF1ZXN0ZWRQb3NpdGlvbik7CiAKQEAgLTg4MSw3ICs4ODEsNyBAQCBjb25zdCBnY2hhciogY29u
c3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIAogc3RhdGljIFVSTCBjb252ZXJ0
UGxheWJpblVSSShjb25zdCBjaGFyKiB1cmlTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFVSTCB7IFN0
cmluZyB7IHVyaVN0cmluZyB9IH07CisgICAgcmV0dXJuIFVSTCB7IFN0cmluZzo6ZnJvbUxhdGlu
MSh1cmlTdHJpbmcpIH07CiB9CiAKIHN0YXRpYyBnY2hhciogd2ViS2l0V2ViU3JjR2V0VXJpKEdz
dFVSSUhhbmRsZXIqIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAppbmRleCAwNGVh
ZTAwY2E1NTM5ZTdkMmQ5YjI4Mzk1Y2U5YWUzZjY4NzEyMjlkLi5iYzUzOWE4NzQ3ODAyODE4MTNm
NmFmMzAwYWUyZTAyYjc2YWU2MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKQEAgLTEy
Miw5ICsxMjIsOSBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgQ0RNRmFjdG9yeVRodW5kZXI6OnN1
cHBvcnRlZEtleVN5c3RlbXMoKSBjb25zdAogICAgIGlmIChzdXBwb3J0ZWRLZXlTeXN0ZW1zLmlz
RW1wdHkoKSkgewogICAgICAgICBzdGQ6OnN0cmluZyBlbXB0eVN0cmluZzsKICAgICAgICAgaWYg
KG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2
aW5lS2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigpKSA9PSBFUlJPUl9OT05FKQotICAgICAg
ICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lkZXZpbmVL
ZXlTeXN0ZW0pKTsKICAgICAgICAgaWYgKG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVh
bWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigp
KSA9PSBFUlJPUl9OT05FKQotICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJF
TUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pKTsKICAgICAgICAgR1NUX0RFQlVHKCIl
enUgc3VwcG9ydGVkIGtleSBzeXN0ZW1zIiwgc3VwcG9ydGVkS2V5U3lzdGVtcy5zaXplKCkpOwog
ICAgIH07CiAgICAgcmV0dXJuIHN1cHBvcnRlZEtleVN5c3RlbXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0
aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRleCBkMmFkZTg3MzBjMDRlNzU1MDJjNmEwNDRh
MDE3OWM5MzI2YzllM2E4Li5hYTYxYzQxYWZjZTQ1YWNhMjE3YjdmNWVmN2RkY2U5MWVmYjI4ZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIqKiBzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqKj4oZ192YWx1ZV9n
ZXRfYm94ZWQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUpKTsKICAgICAgICAg
aWYgKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcykgewogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyArK2kpCi0g
ICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChzdHJlYW1FbmNyeXB0aW9u
QWxsb3dlZFN5c3RlbXNbaV0pOworICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5h
cHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tp
XSkpOwogICAgICAgICB9CiAgICAgfQogICAgIGNvbnN0IEV2ZW50VmVjdG9yJiBldmVudHMoKSBj
b25zdCB7IHJldHVybiBtX2V2ZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cAppbmRleCAxYWYwZTU1NGQ4MmJhZTU4MTkzY2FjNjk3NWFhNWE3MzFlMGEzODVlLi4wYmIyMmQ1
MjU5MGVkZTI1NzhmMDRmMjZhNjE2ZjkxNjBjNDRiM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVu
ZFBpcGVsaW5lLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIHN0ZDo6dHVwbGU8R1JlZlB0cjxHc3RD
YXBzPiwgQXBwZW5kUGlwZWxpbmU6OlN0cmVhbVR5cGUsIEZsb2F0U2l6ZT4gQXBwZW5kUGlwZWxp
CiAKICAgICBjb25zdCBjaGFyKiBvcmlnaW5hbE1lZGlhVHlwZSA9IGNhcHNNZWRpYVR5cGUoZGVt
dXhlclNyY1BhZENhcHMpOwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xldG9uKCk7Ci0gICAgaWYgKCFnc3RSZWdpc3RyeVNj
YW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNvbmZpZ3Vy
YXRpb246OkRlY29kaW5nLCBTdHJpbmcgeyBvcmlnaW5hbE1lZGlhVHlwZSB9KSkgeworICAgIGlm
ICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nOjpmcm9tTGF0aW4xKG9yaWdp
bmFsTWVkaWFUeXBlKSkpIHsKICAgICAgICAgc3RyZWFtVHlwZSA9IFN0cmVhbVR5cGU6OkludmFs
aWQ7CiAgICAgfSBlbHNlIGlmIChkb0NhcHNIYXZlVHlwZShkZW11eGVyU3JjUGFkQ2FwcywgR1NU
X1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIHByZXNlbnRhdGlvblNpemUgPSBn
ZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2FwcyhkZW11eGVyU3JjUGFkQ2FwcykudmFsdWVfb3IoRmxv
YXRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlw
dGlvbi5jcHAKaW5kZXggZjFlYzYzMWE5N2UzYmRiMjliYTQxYjRjZDVmYzY2YTYxMTAxMzRhMC4u
MDFmMTBiNzhlNjE2ODk2MWEyMDUxNmUxYTE3NjRhMjUzOGE0N2ZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCkBAIC03NCw3ICs3NCw3
IEBAIEF0b21TdHJpbmcgR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbjo6ZXh0cmFjdENvZGVjTmFt
ZSgpCiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGVzY3JpcHRpb24oZ3N0X3BiX3V0
aWxzX2dldF9jb2RlY19kZXNjcmlwdGlvbihvcmlnaW5hbENhcHMuZ2V0KCkpKTsKLSAgICBTdHJp
bmcgY29kZWNOYW1lKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBhdXRvIGNvZGVjTmFtZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXNjcmlwdGlvbi5nZXQoKSk7CiAKICAgICAvLyBSZXBvcnQgIkgu
MjY0IChNYWluIFByb2ZpbGUpIiBhbmQgIkguMjY0IChIaWdoIFByb2ZpbGUpIiBqdXN0IGFzICJI
LjI2NCIgdG8gYWxsb3cgY2hhbmdlcyBiZXR3ZWVuIGJvdGggdmFyaWFudHMKICAgICAvLyBnbyB1
bm5vdGljZWQgdG8gdGhlIFNvdXJjZUJ1ZmZlciBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGI2MTUwZGE0M2Qx
Nzg0ZmQ1NTI1ZmJiZmE5Yjg1MjcwZWUwMzA5OWQuLjVkNTQxOWU4NDhlYTY2ZTQ1ZjVkODMzNWI1
Yzk2MmNlNjQ0NTlkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHNpemVfdCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCkgY29uc3QK
ICAgICAgICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScKICAgICAg
ICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcK
IAotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsK
KyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJNU0VfTUFY
X0JVRkZFUl9TSVpFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOwogICAgICAgICAgICAgZm9y
IChjb25zdCBTdHJpbmcmIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
LmNwcAppbmRleCA5MTk2M2QzMjkwOTNlMzZlMDRhMmQ5ZmFiMWMzZmRhYzM0NmYwYWZmLi5lZTY0
MzFhYzgwZTExMGY1NDk5Y2NlYzFkNWNjMGI2YmM1YTM2OGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgRXh0ZW5zaW9uc0dMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzCiBT
dHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBBU1NFUlQo
IW1fdXNlSW5kZXhlZEdldFN0cmluZyk7Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6Omds
R2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKaW5kZXgg
ZTkyMzI0YWNiZjdlNGZlMGFhYmUyOTIzNzM0NTIxNDY4NGNhZTI5Yy4uMmRjNjQ1NWI0NDI0MzMy
MTlkMTNmOTdiNjI3N2M4MDcyNWY1Njc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5H
TENvbW1vbi5jcHAKQEAgLTc0LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uOjpF
eHRlbnNpb25zR0xPcGVuR0xDb21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnQKICAg
ICAsIG1fcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQogICAgICwg
bV91c2VJbmRleGVkR2V0U3RyaW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAgbV92ZW5k
b3IgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhH
TF9WRU5ET1IpKSk7Ci0gICAgbV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVuZG9yID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfVkVORE9SKSkpOworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikp
KTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRvci5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNvbXBvbmVu
dHMuY29udGFpbnMoIm52aWRpYSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKaW5k
ZXggYjkxMTEwMjU5ODM1ODkwZDY1MTNmYTAzM2MzMmY5NTFlN2VmZGJkOS4uZWRhZTEyOTJmMTg5
M2VkZDg0MjI0NGJmYTdmZmM0NTYwZDA5OGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
RVMuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBFeHRlbnNpb25zR0xPcGVuR0xFUzo6cGxh
dGZvcm1TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFN0cmluZyBFeHRl
bnNpb25zR0xPcGVuR0xFUzo6Z2V0RXh0ZW5zaW9ucygpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMp
KSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IDBh
NmE4OGNmMWFkNGM4NGQxMDAxNDRkMzU5NzU5Yjk1YWU3YjIzYmYuLjhmNTQ2NmE1YTNlN2JlOWVj
NmFjMDI5NTlhZmZkZTQ5ODViMDZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpnZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VDb250ZXh0Q3VycmVu
dCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aGlu
dChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCmluZGV4IDY2ZGJlYzQwYWFjMmI3Mzk3YTE5MzMx
MTY2YzcyYmQ2MjYxNmUwNmUuLjI4NjViOGI4YWE0NDFjMzU5ZTJhNDZhMzRhZTY5ZWQ3ZTc3OTdi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CkBAIC01NCw3ICs1NCw3IEBAIGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyYg
VGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKQogI2lmIFVTRShPUEVOR0xfRVMp
CiAgICAgICAgIGF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCA9IHRydWU7CiAKLSAgICAgICAg
U3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xH
ZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgYXV0byBleHRlbnNpb25zU3RyaW5n
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9U
VGV4dHVyZXMgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVyZV9ucG90
Iik7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSA9IGV4dGVuc2lv
bnNTdHJpbmcuY29udGFpbnMoIkdMX0VYVF91bnBhY2tfc3ViaW1hZ2UiKTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckZQU0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBjN2ExYzI3MjVkM2QyZTJlZjli
ZTk3M2Q5Y2ZjOGNmYWI5OGI4OGRmLi45MDZmOWI0M2MwZTdlNzJlMWQyZDZmNmExZDc5M2Q5OGMx
MTBlM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OlRleHR1cmVNYXBwZXJGUFNDb3VudGVy
KCkKICAgICAsIG1fbGFzdEZQUygwKQogICAgICwgbV9mcmFtZUNvdW50KDApCiB7Ci0gICAgU3Ry
aW5nIHNob3dGUFNFbnZpcm9ubWVudCB7IGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikgfTsKKyAg
ICBhdXRvIHNob3dGUFNFbnZpcm9ubWVudCA9IFN0cmluZzo6ZnJvbUxhdGluMShnZXRlbnYoIldF
QktJVF9TSE9XX0ZQUyIpKTsKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgbV9mcHNJbnRlcnZh
bCA9IFNlY29uZHMoc2hvd0ZQU0Vudmlyb25tZW50LnRvRG91YmxlKCZvaykpOwogICAgIGlmIChv
ayAmJiBtX2Zwc0ludGVydmFsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYy
Yjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRkNWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJm
YmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0
cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25l
ZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIEdES19LRVlfS1Bf
RW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9C
YWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tleXZhbF90b191bmljb2RlKHZhbCk7CiAgICAg
ICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndw
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNi
NThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYzMC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5
NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGli
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcs
MTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFj
dGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAg
IGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAg
ICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQi
X3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0
dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2
ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0
MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0
cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4m
JiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VU
eXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9n
ZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhT
dHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0
cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0
YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgo
IlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNw
bGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5
Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0
UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkp
OwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8g
cmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAg
YXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vz
c2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1h
eWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZv
Q3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4u
MmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUlu
Zm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJ
bmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJp
ZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsg
WDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5n
KG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0
ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIs
IHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2
YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRl
eHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBj
b25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNv
ZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JD
b2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJp
bmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9u
c2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNz
LT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3Mt
PnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9y
dCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgi
OiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2
NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYx
N2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBA
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5
SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCog
c3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBT
dHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5n
IHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRf
Y3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4
OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUy
Yzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgs
NyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChj
b25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVf
ZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVy
ZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9t
YWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVy
biBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25v
dXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBh
ZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUw
YmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBs
YXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAg
VVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2Vy
dmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2Vy
dmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBl
cnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAK
aW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZjYzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2
NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYwZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0
NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6
RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVE
KGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8v
IFVSTCB1c2luZyBBU0NJSQogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0
cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJv
bUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2Jh
bCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyAr
NDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6
OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1l
IHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0
YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRhdGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0g
ICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmlu
ZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKKyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZp
bGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lz
dGVtUGF0aCgpOwogICAgICAgICAgICAgICAgIGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAg
ICAgKnRpdGxlID0gdXJsOwogICAgICAgICAgICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmlu
ZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3QqIGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChT
VUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkp
IHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nh
c3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3Ry
aW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAg
ICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRp
dW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpAQCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFp
bnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFNYXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsK
ICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBwcmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigi
c291cmNlVVJMOiIpOworICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAg
IFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWduZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25v
cmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwogICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1
ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQy
MjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpy
ZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ks
IHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6
Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6
OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlz
IHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBMYXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5k
b3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJpZ2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4
dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkg
fTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2Fz
dDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2so
Y2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVi
b2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAg
ICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAg
ICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAgICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJp
bmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21M
YXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAg
ICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQz
NGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRhNzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYy
YTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAg
ICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQgYmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQo
IkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmlu
ZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4
IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAzYjFmMGVlNWMuLmI5MjRkYWQzYjI3ZWVm
MDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtMTg4LDEx
ICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRl
Z3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0
cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSJf
cyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiX3MpOwogICAg
IGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVh
Z2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIl9zKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5k
ZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgxZDEwYTU5YmVjMi4uODg2ZTc2MzQ0ODdh
OTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThhZjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZl
ci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNl
cnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lmIFVTRShJTlNQRUNUT1JfU09DS0VUX1NFUlZFUikKICAg
ICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwogICAgIGlmIChjb25zdCBjaGFyKiB0YXJnZXRFbnZWYXIg
PSBnZXRlbnYoIldFQkRSSVZFUl9UQVJHRVRfQUREUiIpKQotICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIgfTsKKyAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHRhcmdldEVudlZhcik7CiAjZW5kaWYKICAgICBmb3IgKGludCBpID0gMSA7
IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsKQEAg
LTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFy
KiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwog
ICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9y
dFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJM
ZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0t
cG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAg
ICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAg
ICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYg
KCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAg
ICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAg
IGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC05NywxMyArOTcsMTMgQEAgaW50IFdlYkRy
aXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAg
cHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJ
VF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3Ry
aW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGFyZ2V0U3RyTGVuZ3RoID0gc3RybGVuKCItLXRh
cmdldD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tdGFyZ2V0PSIsIHRhcmdldFN0
ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmcoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtNTY2LDcgKzU2Niw3IEBA
IGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKEpT
T046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICghbV9zZXNzaW9uLT5pc0Nvbm5lY3Rl
ZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jh
c2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5n
KCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIl9zKSkpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEuIElmIHJlcXVpcmVkIGNhcGFiaWxp
dGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNPTiBPYmplY3Qu
CiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsK
ICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJlZENhcGFiaWxp
dGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZh
bGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAK
ICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0
cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgcmVxdWlyZWQgY2Fw
YWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0
aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYgKCFyZXF1aXJlZENhcGFiaWxpdGll
cykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3
YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJp
bGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046
Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hD
YXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAzLjIuIElmIGFsbCBmaXJzdCBtYXRj
aCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJv
ciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlz
IGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRp
ZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2Jq
ZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVz
ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAg
ICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0
TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJ
bnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwogICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAvLyA1LjEuIExldCB2YWxpZGF0ZWQg
Y2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxp
dGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcy4KICAgICAgICAgZmly
c3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqZmlyc3RNYXRjaENh
cGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0
Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxD
YXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3Qg
SlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0
LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygi
RmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9u
Tm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRl
cnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Npb24KICAgICBpZiAobV9zZXNzaW9u
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51
bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENy
ZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIl9zKSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywg
RnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0
b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1h
bmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGll
c0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3Ry
aW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNl
c3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRp
YyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgq
ZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNl
IGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiJfcyk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUi
X3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlk
IG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTkzNSw3ICsxOTM1LDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmlu
ZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJrZXlEb3du
IikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjsKICAg
ICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMTk1MCwxMiArMTk1
MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtl
eSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAg
YXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAgICAgICAgaWYgKGtleS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
dmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBm
b3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNv
ZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlv
biJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9u
VmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdk
dXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVl
KCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVB
Y3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAg
ICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1ZS0+YXNPYmplY3QoKSkgewogICAg
ICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmplY3QtPmdldFN0cmluZyhTZXNzaW9u
Ojp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudElEKSB7
Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdv
cmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAg
ICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdp
bicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJfcyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0
aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50
LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
b2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9u
LCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0gInBvaW50ZXIiKQogICAgICAgICAg
ICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlw
ZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMg
aW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAt
MjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB4
VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkgewogICAgICAgICBhdXRvIHggPSB2
YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF4KSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlz
IGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgp
OwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0
aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAo
YXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5Il9zKSkgewogICAgICAgICBhdXRv
IHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYg
KCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi55ID0geS52
YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2VsIikKICAgICAgICAgYWN0aW9uU3Vi
dHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNlbDsKICAgICBlbHNlIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMDc0LDEyICsyMDc0LDEyIEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50
ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsK
ICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0
ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGFjdGlv
bi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24udmFsdWUoKSk7CkBAIC0yMTA5LDcg
KzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9
PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Ny
b2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlz
IGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAt
MjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hl
ZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0
byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykpIHsKICAgICAg
ICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJ
TlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7Ci0gICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9y
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rp
b24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlk
LCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRl
bS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1
ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYg
KCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0YVkudmFsdWUo
KTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJh
bWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAKICAgICBh
dXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmplY3QoKTsKICAg
ICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
QWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Iik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFy
YW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBv
aW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBh
CiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNoIikKICAgICAgICAgcGFyYW1ldGVy
cy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0
aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1
ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9i
amVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVu
Y2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAg
ICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElu
cHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBh
Y3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGlkID0g
YWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwogICAgIGlmICghaWQpIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9u
IHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+
IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIAogICAgIGF1dG8m
IGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlucHV0U291cmNlKGlkLCBpbnB1dFNv
dXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1
dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2Vx
dWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBp
bnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElucHV0U291cmNlOjpUeXBlOjpQb2lu
dGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vz
bid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2gg
aW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9IGFjdGlvblNlcXVlbmNlLT5nZXRB
cnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25JdGVtcykgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Ig
bm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2Vu
dCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsraSkgewogICAg
ICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09iamVjdCgpOwog
ICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7Cisg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2Vx
dWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vy
dmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBG
dW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBhcmFtZXRlcnMtPmdldEFycmF5KCJh
Y3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQg
b3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiX3Mp
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2Vi
RHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFiYTdmZDI5ZWJiZTMxZjczNmZjOWFk
ZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkzNjcwMTZmMWU1NjFlNzUyM2M3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0
aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBh
YmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygi
bGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICBy
ZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVm
PEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxp
dGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5
ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9O
X1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkg
PSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05f
U1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1l
bnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0
aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dp
bi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAppbmRleCA5MzY3MTJmMmYxMzVlZjFjOTgzZGNhNzU0
MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcxY2NhZGEyNWU3MzcxZjYzNjU4MmFmMzQzZGY3M2JiZGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcApAQCAt
MzgsNyArMzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBh
YmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAg
IENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFt
ZSA9IFN0cmluZygid2luIik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmlu
Zygid2luIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAg
cmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd3Bl
L1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVy
U2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhMTJhMDA1ZmFjMDkwYzdlNjZlMGU2MzY1
OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVhNWU2ZDJlYjIwNDBjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKKysrIGIvU291
cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdl
YkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRp
ZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmco
ImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgi
X3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJu
IGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBAQCBib29sIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09O
OjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMo
Y29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNh
cGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0
cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0
cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRz
ID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9zIH07CiAKICAgICBhdXRvIGJyb3dz
ZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRPYmplY3QoIndwZTpicm93c2VyT3B0
aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYTIyOWE4MDJlMjhiNWViNzExMjg4ZjVlMzBjMjYyNTA4YWIyZDliYy4uOWY2YjhlOGE1
MTNiNzgwZmU3N2ExMGU1YTdlYTdjMGQwMGMxOWZjMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcg
Y29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBj
aGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9G
aWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hU
VFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1
ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2Rpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNy
ZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2Vi
VmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6
XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQt
MDggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJn
ZS1RdWV1ZV0gQWRkIHF1ZXVlIHRyaWdnZXJlZCBieSBsYWJlbCBhZGRpdGlvbiAoRm9sbG93LXVw
IGZpeCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhy
ZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFk
Q29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFmYzEwZGQ4Yjg0MGIxMDRiZDNk
Li42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBhMTAzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9
IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1w
bCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJl
ZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlM
VlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsK
LSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdp
bmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBF
WFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5n
IG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5
KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZD
b3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3Jp
Z2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAg
ICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5o
YXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3
ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmlu
ZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2
aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcg
c3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwg
eyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwog
ICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMz
NDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIzOTY4NjUxNjg4ODFiNzQxNDdj
ZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVT
eXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGlu
Z19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwor
ICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBz
dWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1h
cHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0YzM1MjRlOTU3MjVjYTguLjdm
OTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1Qo
V1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJB
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRl
Z2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o
aW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJkNDg5M2FjMDA3YzguLmE0ODdl
NTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
Q2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAg
IGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVu
ZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAg
ICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhi
dWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIz
NDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMw
LDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0
cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7
CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIo
KSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGlu
MShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2Qi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwogICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVs
bHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8g
VGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAx
Ni1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2Fw
YWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwg
MSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2Ug
dXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291
bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vz
c2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVy
KTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNp
dHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkp
LCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVp
bGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5v
dCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3Ry
aW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXpp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAg
YnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
c3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25l
ZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHks
IGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBD
aGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5
IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0y
NDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQ
RUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVp
bGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNp
dHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAg
c3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAg
IC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkg
PSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmlu
aygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBA
IC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAg
YnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAg
ICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQ
RUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njci
X3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAg
ZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3Rh
dGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7
CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQo
IjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFw
cGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJp
bmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVp
bGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiks
IGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcp
OwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFiODY3ZDYyOTBkZDI3YTFkMGIz
OWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJjMjE3YWRmMjhmYjNmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0
ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNXaXRoSWdub3JpbmdBU0NJSUNh
c2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIpOworICAgIFN0cmluZyBzdHJp
bmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlIikpOwogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoIiIpLCAiIikpOworICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJp
bmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIy
YzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2OGMwM2RiN2JhNjMwYzdhZWEy
YTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3Ry
aW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21T
dHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFs
IHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsg
IlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1Zp
ZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9
OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGMyNTMzODJkMzRhMTc4MzI2
YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2NjY2ZmM5ZjljNDA5YTNjZTBj
ZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcu
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5
VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0
eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFj
dGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9z
KTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVy
cyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxs
VmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxs
KQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0
aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hh
cmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hh
cmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5p
c0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVy
YXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6
OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7
CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsK
ICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0g
aGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcp
OwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VR
KCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7
CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2lu
dHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwogICAgIGNvZGVQb2ludHNJdGVy
YXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRv
cjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0Fs
bEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5p
c0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIp
KS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+T
sSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi
XHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJp
bmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3
KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJp
bmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVY
UEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxs
QVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0
PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFhZmE0MTMxODI0ZTNkOGRhMzg4
Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAg
VEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFyKQogICAgIEVYUEVDVF9UUlVF
KGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJsLnByb3RvY29sKCkgPT0gImh0
dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iKSwga3Vy
bC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUu
Y29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoISFrdXJs
LnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9ydCgpLnZhbHVlKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNlcigpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3
b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXgu
aHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1s
Il9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2
YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdt
ZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJs
LmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCJf
cyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVS
TChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyArODAsNDMgQEAgc3RhdGljIFVS
TCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQogVEVTVF9GKFdURl9VUkwsIFVS
TFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOkB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5o
dG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJu
YW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
ImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmls
ZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9h
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1l
OnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFz
ZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcg
KzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7
CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVS
TCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7
eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIpLCB0ZXN0VmVjdG9yMTIpOwog
ICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAgIAogICAgIFVSTCB1cmw1ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJM
IHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHt7ImtleTEiLCAi
dmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0b3I1Nik7CiAgICAgCiAgICAg
VVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZr
ZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5
MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwy
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1
cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTYgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYge3sia2V5MSIs
ICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsKICAgICAKICAgICBVUkwgdXJs
MTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFs
MSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZh
bDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTEsIHVybDEyKSwg
dGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTgg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7
eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwg
eyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcsIHVybDE4KSwgdGVzdFZlY3Rv
cjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDIw
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAg
e3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXky
IiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5MSJfcywgIiJfcyB9LCB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAg
CiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz8iX3Mp
OwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8vP3Rl
c3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0
Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsKICAgICAK
ICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PXRlc3Qi
X3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89
PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIi
X3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAKICAgICBVUkwgdXJsMjcgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJsMjggPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVz
dCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/
Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAgICBVUkwgdXJsMjkgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDMwID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIs
ICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyOSwgdXJsMzApLCB0ZXN0VmVj
dG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMxLCB1cmwzMiksIHRlc3RWZWN0
b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNSwgdXJsMjYpLCB0ZXN0VmVj
dG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCmlu
ZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQzNTU1NjMuLmEyMmViMjNjY2Jm
NzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFw
TGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBT
dHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAi
djIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOwor
ICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3Mp
OworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6
Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3Ry
aW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQ1MDI3MGYyMWY2NWExMGZj
YmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1MWM1NWRlYjdkMjM2YjFkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEz
ICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBF
Q1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21M
aXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3Ry
dWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9U
UlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxW
aWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5
bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmlu
Z0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxl
bigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVY
UEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChX
VEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRz
V2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBl
bXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxs
byJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRo
KG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFy
dHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmlu
Z051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJp
bmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0g
U3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQg
PT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVT
VChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRF
U1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9r
KSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcyku
dG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQg
aWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcganVuaywgYnV0IHJldHVybiBm
YWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0
aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAw
IGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJf
cykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3Vi
bGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVt
YmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmluaXR5IgotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMg
Im5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwog
fQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogewotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
VGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3Mp
LmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEz
ICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIp
LCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhT
dGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3Mp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBU
RVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1w
bGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3Mp
OwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uo
c3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsK
QEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNU
KFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
MSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwog
ICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5
NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3MTIzNGMzYzIwY2YxNDVmZTU2
NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTE3OTIsNyArMTc5Miw3IEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1cmVzKQogICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJz
ZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFyIG5vbkFTQ0lJWzJdID0gey0x
LCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcgeyBub25BU0NJSSB9LCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwor
ICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSSksIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIAogICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFjOGVkNDdlYTRiYzZlMmY0MjI4
NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4MjhhMDAwZWMyYzQyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
QEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJU
aGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3Ig
dGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEg
dGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYyOTViODJjZGIwNTI3OTQzMTEy
Mjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBkZmQ3MDdmYzI3NWVhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxk
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZp
ZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQog
ICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAg
ICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVu
dCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAg
ICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSB9LAorICAgICAgICBTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxh
dGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91
bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFy
c2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6IFwiXGFcIiJfcywKICAgICAg
ICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9
LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAg
CiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUxZDNlNjQwYzdjY2NkZTYyOTQz
ZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdjYTBlOTEzYzI5MTA4MzcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNw
cApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldERvdWJsZSkK
IAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQogewotICAgIEVYUEVDVF9UUlVF
KHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZX
ZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiKSkpOwor
ICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjpl
bmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5n
KCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2RpbmcsIEdldE5vbkV4aXN0aW5nUmVj
b3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1ZDU0OTVlMzljMWNkOTRkLi4w
YWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMw
ICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNc
dTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJl
eGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNv
bSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFv
NjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50
ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0
LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
d3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3
LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIx
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBF
WFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJp
ZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJs
b2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOW
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOE
w5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODdjZGZh
OWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0Y2U5MjU1ZTI0NDhiYTc3MzEw
NTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBN
YW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRD
b3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwg
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50
Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNv
cmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0g
U3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJv
bUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3Jk
LCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNjMmFhODc0OGFkZDUxNS4uMWIx
ZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJl
ZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2luZ0ZpbGUpCiB7Ci0gICAgYXV0
byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmco
Im5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcykpOwog
ICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgVEVTVF9GKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRmls
ZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZG
aWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYnVmZmVyKTsKICAgICBF
WFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoRnJhZ21lbnRlZFNo
YXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1
b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmc6
OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0
cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsK
IH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVu
dHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAppbmRleCBkYzRlMTI4
MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3ZjRmZDRiNTUyMjg3NDNkM2Uy
ZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEz
OSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQog
ewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIp
LCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4
RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5
RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAg
IFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRl
eHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFj
ZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2Vz
Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAg
IGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJf
cywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1
MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVu
Y29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNv
ZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0
ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVja1VSTCht
YWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3
cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJf
cywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRo
PyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczov
L2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAl
QjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIw
JUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRj
ZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAuLjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVk
MjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5
OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJv
dGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0
aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwg
ZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJl
IHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2Us
IHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRh
YmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMg
dGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyAr
MjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFu
ZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNo
b3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
VGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vz
bid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0
YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2
ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMwNmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWVi
ZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJl
Zj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhB
eWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJM
a1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2
OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBG
bTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhn
T3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNv
ZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Fo
a2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRh
aW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICI0Nml6aG91M0dTS3oz
WDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAg
ICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0
b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJP
aVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3Yx
dDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0
byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwog
ICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlm
aWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEw
ZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlhNTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWdu
VW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25p
bmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1
ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVx
dWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0
cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5s
aW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Vu
bGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2Vu
Il9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3Ro
KCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJl
cXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsK
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAg
LTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNv
ZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZl
Y3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0g
cmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4
ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgwMDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5
MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyAr
NzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdB
d2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMg
fTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owot
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0
U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNv
dXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRp
b25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1l
T3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0
U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VI
ZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291
cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChz
b3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVk
ZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAg
aWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAg
ICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywg
U3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAg
IEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFk
ZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6
ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6
OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tX
S1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklz
b2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIp
ICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0g
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVz
dGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7
CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09Q
ID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7Cisg
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJl
LWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3
YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4
MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29u
c3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVz
dGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNz
aW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsK
ICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2
ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVj
dCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNu
J3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlz
SklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4
IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJiYTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRj
NzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0y
MTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAg
ICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIo
W10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWlu
Qnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5C
eXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNl
aXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxp
emUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNw
b25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9
LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rv
cjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dl
ZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJf
cykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4
IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJlNTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJk
MWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUg
aWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0
IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAi
PGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwv
aHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8
aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5
LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0
bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVl
YTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWVi
N2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVT
VChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNv
cHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwg
VVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwg
YWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJr
aXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4
dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4
NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzViMGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3
NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFu
Y2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxl
Y3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4
dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBT
dHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQy
N2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2FlY2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNl
YTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3
ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVY
UEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2
ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0
OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBlZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1
MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFu
ZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAg
ICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAg
ICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29u
bmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2Nl
cHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdy
YWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAi
VXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdl
YlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBS
ZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBI
VFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQ
aFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRV
emQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdh
IgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9v
Q01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7Cisg
ICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVj
b2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAg
ICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcg
QEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtV
YmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRV
RGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJT
MUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZa
ZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3
WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3
PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4
OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4
M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5j
cHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyAr
NTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3Vt
bWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBT
dHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9
IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsK
KyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVt
cHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJp
dFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBs
ID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYx
NlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457128</attachid>
            <date>2022-04-08 16:51:36 -0700</date>
            <delta_ts>2022-04-08 18:51:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408165135.patch</filename>
            <type>text/plain</type>
            <size>170712</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDAzZWZiN2MxMjA0NTUxZWFl
Mjc3Njk3ZDk3Y2JlMjUwMjY2ZTA1MC4uYjY0OTcwOTgwYWJlM2YzYzc5Yjk0MmZhMDgyNjU2NjNj
ZTgyOWJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC03NiwxNCArNzYsOSBAQCBwdWJs
aWM6CiAgICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggVVRGLTE2IGRhdGEsIGZyb20gYSBu
dWxsLXRlcm1pbmF0ZWQgc291cmNlLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29u
c3QgVUNoYXIqKTsKIAotICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIGxhdGluMSBkYXRh
LgorICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIExhdGluLTEgZGF0YS4KICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKTsKLQotICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBpbiBm
YXZvciBvZiBmcm9tTGF0aW4xKCkgLyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCku
Ci0gICAgLy8gRklYTUU6IE1ha2UgcHJpdmF0ZSBvbmNlIGFsbCB1c2VycyBoYXZlIGJlZW4gcG9y
dGVkLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciog
Y2hhcmFjdGVycyk7Ci0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBTdHJpbmcgZnJvbUxhdGlu
MShjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKSB7IHJldHVybiBTdHJpbmcgeyBjaGFyYWN0ZXJzIH07
IH0KIAogICAgIC8vIENvbnN0cnVjdCBhIHN0cmluZyByZWZlcmVuY2luZyBhbiBleGlzdGluZyBT
dHJpbmdJbXBsLgpAQCAtMzQ3LDYgKzM0Miw5IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Ym9v
bCBhbGxvd0VtcHR5RW50cmllcz4gVmVjdG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChVQ2hhciBz
ZXBhcmF0b3IpIGNvbnN0OwogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJpZXM+IFZl
Y3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoU3RyaW5nVmlldyBzZXBhcmF0b3IpIGNvbnN0Owog
CisgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IHByaXZhdGUuIFVzZSBmcm9tTGF0aW4xKCkg
LyBmcm9tVVRGOCgpIC8gU3RyaW5nKEFTQ0lJTGl0ZXJhbCkgaW5zdGVhZC4KKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOworCiAg
ICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3Vh
Z2VVbml4LmNwcAppbmRleCBhZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUy
Li44YmUyZjYxZjc5YjVjNWE5NzVjYzUxMTk4ZDFiOGVlMDI0NzIzYTE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYgewog
Ly8gYWx3YXlzIHRoZSBzYW1lIHZhbHVlLgogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdl
KCkKIHsKLSAgICBTdHJpbmcgbG9jYWxlRGVmYXVsdChzZXRsb2NhbGUoTENfQ1RZUEUsIG51bGxw
dHIpKTsKKyAgICBhdXRvIGxvY2FsZURlZmF1bHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2V0bG9j
YWxlKExDX0NUWVBFLCBudWxscHRyKSk7CiAgICAgaWYgKGxvY2FsZURlZmF1bHQuaXNFbXB0eSgp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIkMiKSB8fCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJQT1NJWCIpKQogICAgICAgICByZXR1cm4g
ImVuLVVTIl9zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDk4YmY1NjZj
ZTI1Y2E1ZTZjZjFmNDE5ZDQzMDc1MjJhOTM1MWM1NDQuLjU0ZDg2Y2Y4NmU5ZmY4MDhkMzQ4NGVi
NjA0ODM1MTZlMTJlNTc2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2lu
Z1VuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0z
OSw3ICszOSw3IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAgICAgV1RGTG9nQWx3YXlzKCJX
RUJLSVRfREVCVUcgaXMgbm90IGVtcHR5LCBidXQgdGhpcyBpcyBhIHJlbGVhc2UgYnVpbGQuIE5v
dGljZSB0aGF0IG1hbnkgbG9nIG1lc3NhZ2VzIHdpbGwgb25seSBhcHBlYXIgaW4gYSBkZWJ1ZyBi
dWlsZC4iKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFN0cmluZyB7IGxvZ0VudiB9OworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21MYXRpbjEobG9nRW52KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcApp
bmRleCAyZDMyOGY2YWZkNWEyODU2MWU5OWMwZjEzZTRmYzY2YjUwNjdiOTQ1Li5hNDJmZjNmZGVh
ZWFmODAwNjA3MDVhMjc1Njc2ZDRlY2RmZTcwZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmPFJU
Q0RhdGFDaGFubmVsRXZlbnQ+IEdTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlcjo6Y3JlYXRlRGF0
YUNoYW5uZWxFdmVudChEb2MKICAgICBpbml0Lm9yZGVyZWQgPSBvcmRlcmVkOwogICAgIGluaXQu
bWF4UGFja2V0TGlmZVRpbWUgPSBtYXhQYWNrZXRMaWZlVGltZTsKICAgICBpbml0Lm1heFJldHJh
bnNtaXRzID0gbWF4UmV0cmFuc21pdHM7Ci0gICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZyhwcm90
b2NvbC5nZXQoKSk7CisgICAgaW5pdC5wcm90b2NvbCA9IFN0cmluZzo6ZnJvbVVURjgocHJvdG9j
b2wuZ2V0KCkpOwogICAgIGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5p
ZCA9IGlkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmlu
ZGV4IDI5ZTI1NTc2NGVhMzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQy
OWQzYTg1MmM0ZDdiYjFiNjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lck1lZGlhRW5kcG9pbnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8c3RkOjpwYWlyPFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0
RWxlbWVudCoKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2Fn
ZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0
Y0JpbiwgIiVzLWRlc2NyaXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwot
ICAgIHJldHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdl
dCgpKSwgU3RyaW5nIHsgc2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJv
bVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9t
TGF0aW4xKHNkcFN0cmluZy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFs
aW5nU3RhdGUgZmV0Y2hTaWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00
NTYsNyArNDU2LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1M
aW5lSW5mbyhHc3RTRFBNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAotICAgICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19z
dHJfZXF1YWwobWVkaWFUeXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1f
bWVkaWFGb3JNaWQuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRp
YVR5cGUsICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dp
dGxhYi5mcmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3Jl
cXVlc3RzLzE5MDcKICAgICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAi
aWNlLWxpdGUiKSkgewpAQCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRw
b2ludDo6YWRkUmVtb3RlU3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0g
bWFrZVN0cmluZyhzZHAuZ2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3Rf
cGFkX2dldF9uYW1lKHBhZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBh
dXRvIGxhYmVsID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5
ID0gbWFrZVN0cmluZygibXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0
KCdcbicpOwogICAgIGZvciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUs
OSBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlv
blN1Y2NlZWRlZChHVW5pcXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4g
c2RwKGdzdF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAg
aWYgKG1faXNJbml0aWF0b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBt
X3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21M
YXRpbjEoc2RwLmdldCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7
CisgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVk
ZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1
LDcgKzExMjUsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2Nl
aXZlcnMoKQogICAgICAgICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2Nl
aXZlcihXVEY6Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZN
b3ZlKGN1cnJlbnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsK
KyAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTlj
NjEzZmJhLi41YTkzMmIxYjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAK
QEAgLTc5LDcgKzc5LDcgQEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6
bWlkKCkKIHsKICAgICBHVW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQo
bV9ydGNUcmFuc2NlaXZlci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwot
ICAgIHJldHVybiBTdHJpbmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
TGF0aW4xKG1pZC5nZXQoKSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNr
ZW5kOjpzdG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNw
cAppbmRleCBkY2Y3YWQxZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3
NTUwOGE0MzJmNzc0ZWU2OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlu
bGluZSB2b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25z
dCBHc3RTdHJ1Y3R1cmUKICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0
dXJlX2dldF9kb3VibGUoc3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAg
ICAgIHN0YXRzLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7
IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMu
aWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVy
ZSwgImlkIikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRz
KFJUQ1N0YXRzUmVwb3J0OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAot
ICAgIHN0YXRzLnRyYW5zcG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5n
KHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
ZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07Cisg
ICAgc3RhdHMudHJhbnNwb3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9n
ZXRfc3RyaW5nKHN0cnVjdHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lk
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUs
ICJjb2RlYy1pZCIpKTsKIAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0
dXJlX2dldF91aW50KHN0cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6T3V0Ym91bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5h
Y2tDb3VudDsKIAogICAgIGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVf
Z2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3Rl
SWQgPSBTdHJpbmcgeyByZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShyZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRh
cmdldEJpdHJhdGUgPQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmlu
ZGV4IDZhMTYzNmM2ZGRiNmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmI3MDYzMDcyNmYz
Y2MwYWExMWQ3M2M5Y2I3NmEyMjU2MWRkYTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJXZWJSVENVdGlscy5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0
cEVuY29kaW5nUGFyYW1ldGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1
Y3R1cgogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1h
eC1mcmFtZXJhdGUiLCAmbWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFt
ZXJhdGUgPSBtYXhGcmFtZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdz
dF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJh
bWV0ZXJzLnJpZCA9IFN0cmluZzo6ZnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0
Y1BhcmFtZXRlcnMsICJyaWQiKSk7CiAKICAgICBkb3VibGUgc2NhbGVSZXNvbHV0aW9uRG93bkJ5
OwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUocnRjUGFyYW1ldGVycywgInNjYWxl
LXJlc29sdXRpb24tZG93bi1ieSIsICZzY2FsZVJlc29sdXRpb25Eb3duQnkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAppbmRleCBiNTg2ZmM3YWI1OTU0OTg0ZDc3MWZjM2E1YTVkODQ5M2JmMDM2YmQzLi4wMmYw
MGRlNDFhYTFlMDdkM2IyMWUwZjc4YmIwNzVkOGViOTU4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApA
QCAtMTkwNCw3ICsxOTA0LDcgQEAgR0NHTGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQ0dMZW51bSB0YXJnZXQpCiAgICAgY29uc3QgY2hhciog
cmVhc29uID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwogICAgIEdDR0xlbnVtIHJlc3VsdCA9
IHRhcmdldEZyYW1lYnVmZmVyLT5jaGVja1N0YXR1cygmcmVhc29uKTsKICAgICBpZiAocmVzdWx0
ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpGUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBT
dHJpbmcgc3RyID0gIldlYkdMOiBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzOiIgKyBTdHJpbmcocmVh
c29uKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG1ha2VTdHJpbmcoIldlYkdMOiBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzOiAiLCByZWFzb24pOwogICAgICAgICBwcmludFRvQ29uc29sZShNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsIHN0cik7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKaW5k
ZXggM2FkMzc5OTI5MWQxN2FkZmUyM2EyNDYxNzgyNTJjMGQ2OThmMmFhZC4uYzE1MWRmZjUyNTkw
ZTNiZTkyMTc1M2Y0MmEwNjcyNmQ3OWU0OGNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihz
dGF0aWNfY2FzdDxHQnl0ZXMqPihnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIodGFzaywgJmVycm9y
Lm91dFB0cigpKSkpOwogICAgICAgICBpZiAoIWJ5dGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXIt
PmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNz
YWdlKSkpOworICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNv
ZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgICAgICBjb25zdCBhdXRvKiBkYXRhID0gc3RhdGljX2Nh
c3Q8Y29uc3QgZ3VjaGFyKj4oZ19ieXRlc19nZXRfZGF0YShieXRlcy5nZXQoKSwgJmRhdGFTaXpl
KSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZmlsZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFt
ZSh1cmwucGF0aCgpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBj
b250ZW50VHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhmaWxlTmFtZS5nZXQoKSwgZGF0YSwgZGF0
YVNpemUsIG51bGxwdHIpKTsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlU3RyaW5nIHsgY29u
dGVudFR5cGUuZ2V0KCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZVN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShjb250ZW50VHlwZS5nZXQoKSk7CiAgICAgICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UgeyB1cmwsIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5
cGVTdHJpbmcpLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGRhdGFTaXplKSwgZXh0cmFjdENoYXJz
ZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5nKS50b1N0cmluZygpIH07CiAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgIHJlc3BvbnNlLnNldEhU
VFBTdGF0dXNUZXh0KCJPSyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApp
bmRleCBjMDdjY2U0ODZjN2M2YzVhZWMxYjM3Njc5NzE1ODBhOTE1ZGQ2NDBlLi5iNWMwNDU5ZTFj
MTAwMzIyYzU5NjU4NTY1N2FhYjhkNWI2NTEyNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yQmFzZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRm
b3JtKCkgY29uc3QKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlS2V5LCBbXSB7CiAgICAgICAgIHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsK
LSAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3Ry
aW5nKG9zbmFtZS5zeXNuYW1lKSArICIgIl9zdHIgKyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDog
U3RyaW5nKCIiX3MpKTsKKyAgICAgICAgcGxhdGZvcm1OYW1lLmNvbnN0cnVjdCh1bmFtZSgmb3Nu
YW1lKSA+PSAwID8gbWFrZVN0cmluZyhvc25hbWUuc3lzbmFtZSwgIiAiLCBvc25hbWUubWFjaGlu
ZSkgOiBlbXB0eVN0cmluZygpKTsKICAgICB9KTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLT5p
c29sYXRlZENvcHkoKTsKICNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKaW5k
ZXggYzVkZTFiNjhiNWNjY2E0YjhjOTg1M2IzMzhiNDk4MjE4ZTE0Mzg5YS4uYjI4YTVhNGU4ZjZm
NzY1MDIxOWU3MjIwYWYwYjQ3NDhlMjAxN2Q0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcApAQCAtMTg2LDEzICsx
ODYsMTMgQEAgYm9vbCBBTkdMRVdlYktpdEJyaWRnZTo6Y29tcGlsZVNoYWRlclNvdXJjZShjb25z
dCBjaGFyKiBzaGFkZXJTb3VyY2UsIEFOR0xFU2hhZGUKICAgICBpZiAoIXZhbGlkYXRlU3VjY2Vz
cykgewogICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbG9nID0gc2g6OkdldEluZm9Mb2coY29t
cGlsZXIpOwogICAgICAgICBpZiAobG9nLmxlbmd0aCgpKQotICAgICAgICAgICAgc2hhZGVyVmFs
aWRhdGlvbkxvZyA9IFN0cmluZyB7IGxvZy5jX3N0cigpIH07CisgICAgICAgICAgICBzaGFkZXJW
YWxpZGF0aW9uTG9nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGxvZy5jX3N0cigpKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvYmplY3RDb2Rl
ID0gc2g6OkdldE9iamVjdENvZGUoY29tcGlsZXIpOwogICAgIGlmIChvYmplY3RDb2RlLmxlbmd0
aCgpKQotICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nIHsgb2JqZWN0Q29k
ZS5jX3N0cigpIH07CisgICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmc6OmZy
b21MYXRpbjEob2JqZWN0Q29kZS5jX3N0cigpKTsKICAgICAKICAgICBpZiAoIWdldFN5bWJvbElu
Zm8oY29tcGlsZXIsIFNIQURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUsIHN5bWJvbHMpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcAppbmRleCA3ZDAwNTdmYzI5ZDY2MDdkY2Q1N2VjMmRlNzkxYzM3YTQ0NmVk
ZDgxLi5lMGY4MDA2Y2YxOTRlNDE2MDkwZDFiYzFmZjQ3MjJhOTNlMWI0MTE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTE3Niw3ICsx
NzYsNyBAQCB1bnNpZ25lZCBHTENvbnRleHQ6OnZlcnNpb24oKQogICAgIGlmICghbV92ZXJzaW9u
KSB7CiAgICAgICAgIC8vIFZlcnNpb24gc3RyaW5nIGNhbiBzdGFydCB3aXRoIHRoZSB2ZXJzaW9u
IG51bWJlciAoYWxsIHZlcnNpb25zIGV4Y2VwdCBHTEVTIDEgYW5kIDIpIG9yIHdpdGgKICAgICAg
ICAgLy8gIk9wZW5HTCIuIERpZmZlcmVudCBmaWVsZHMgaW5zaWRlIHRoZSB2ZXJzaW9uIHN0cmlu
ZyBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSAgICAgICAgU3RyaW5nIHZlcnNpb25TdHJpbmcg
PSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9W
RVJTSU9OKSkpOworICAgICAgICBhdXRvIHZlcnNpb25TdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9WRVJTSU9O
KSkpOwogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9uU3RyaW5nQ29tcG9uZW50cyA9IHZl
cnNpb25TdHJpbmcuc3BsaXQoJyAnKTsKIAogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZXJzaW9u
RGlnaXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAK
aW5kZXggZmQ5Zjc4ZTdkMjE0ZTg5OTA4YTA2NThhYmRmNmU5NTcwNjk3ZmJiNi4uMzI0MjA5MDY4
N2Y3NzgxZWUwZDNiNGQ2YWZjNTBlZmY0ZGY2M2E4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgQXVkaW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNp
ZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVj
KGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBj
b25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1
cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgog
CiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5jcHAKaW5kZXggN2EzNjI2M2ZlMDExMzQ0MGU1NDU2YzE5MmQ5YTE4NDUyOWM5NWI5OC4uZDQy
MGQ0ODEzOTMzYjlmNTljZmNmZTc0YmU4ZmMzNjdlNGQzYTk5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckNvbW1vbi5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VHc3RT
dHJ1Y3R1cmVWYWx1ZShHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQog
ewogICAgIGlmIChhdXRvIGpzb25WYWx1ZSA9IGdzdFN0cnVjdHVyZVZhbHVlVG9KU09OKHZhbHVl
KSkgewogICAgICAgICBhdXRvKiBvYmplY3QgPSByZWludGVycHJldF9jYXN0PEpTT046Ok9iamVj
dCo+KHVzZXJEYXRhKTsKLSAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmcgeyBnX3F1YXJr
X3RvX3N0cmluZyhmaWVsZElkKSB9LCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOworICAg
ICAgICBvYmplY3QtPnNldFZhbHVlKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhmaWVsZElkKSksIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIHJl
dHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNw
cAppbmRleCBiZDZiZTZmN2E2MzBlMzZjYzdiZjE1ODUyYjYwZTIyMWIxNjcyNDc1Li42N2Q3MGNi
Y2Y3MjMyM2UyMDkzOTI0MGQ0ZDQ3MGM0MzgxMTY2MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIEdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVhbWVyUmVnaXN0cnlTY2Fu
bmVyOjpFbGVtZW50CiAgICAgaWYgKHNob3VsZENoZWNrSGFyZHdhcmVDbGFzc2lmaWVyID09IENo
ZWNrSGFyZHdhcmVDbGFzc2lmaWVyOjpZZXMpIHsKICAgICAgICAgZm9yIChHTGlzdCogZmFjdG9y
aWVzID0gY2FuZGlkYXRlczsgZmFjdG9yaWVzOyBmYWN0b3JpZXMgPSBnX2xpc3RfbmV4dChmYWN0
b3JpZXMpKSB7CiAgICAgICAgICAgICBhdXRvKiBmYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxH
c3RFbGVtZW50RmFjdG9yeSo+KGZhY3Rvcmllcy0+ZGF0YSk7Ci0gICAgICAgICAgICBTdHJpbmcg
bWV0YWRhdGEgeyBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5LCBHU1Rf
RUxFTUVOVF9NRVRBREFUQV9LTEFTUykgfTsKKyAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9y
eSwgR1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpKTsKICAgICAgICAgICAgIGF1dG8gY29tcG9u
ZW50cyA9IG1ldGFkYXRhLnNwbGl0KCcvJyk7CiAgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5j
b250YWlucygiSGFyZHdhcmUiKSkgewogICAgICAgICAgICAgICAgIGlzVXNpbmdIYXJkd2FyZSA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IGFiZDM2Mjk2MmE0MzU2MDgyMjMzY2IxNGE5OTA3ZDkwNjM0YTZkYzcuLjAxZmVmZWEz
MmQyMTM2ZGZkMWUxZjNjMjViODE2MjY5NjkwZmJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBNZWRpYVNvdXIKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2Fk
KE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIG1fc3RyZWFtUHJpdmF0ZSA9ICZz
dHJlYW07Ci0gICAgbG9hZChTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIikgKyBzdHJlYW0uaWQoKSk7
CisgICAgbG9hZChtYWtlU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIsIHN0cmVhbS5pZCgpKSk7CiAg
ICAgc3luY09uQ2xvY2soZmFsc2UpOwogCiAgICAgbV9wbGF5ZXItPnBsYXkoKTsKQEAgLTE3MzUs
NyArMTczNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNz
YWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9y
KG1lc3NhZ2UsICZlcnIub3V0UHRyKCksICZkZWJ1Zy5vdXRQdHIoKSk7CiAgICAgICAgIEdTVF9F
UlJPUigiRXJyb3IgJWQ6ICVzICh1cmw9JXMpIiwgZXJyLT5jb2RlLCBlcnItPm1lc3NhZ2UsIG1f
dXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIG1fZXJyb3JNZXNzYWdlID0g
U3RyaW5nIHsgZXJyLT5tZXNzYWdlIH07CisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGVyci0+bWVzc2FnZSk7CiAKICAgICAgICAgZXJyb3IgPSBNZWRpYVBsYXll
cjo6TmV0d29ya1N0YXRlOjpFbXB0eTsKICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnIu
Z2V0KCksIEdTVF9TVFJFQU1fRVJST1IsIEdTVF9TVFJFQU1fRVJST1JfQ09ERUNfTk9UX0ZPVU5E
KQpAQCAtMTg4OSw3ICsxODg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZWxzZSBpZiAoZ3N0
X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJodHRwLWhlYWRlcnMiKSkgewogICAgICAg
ICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUHJvY2Vzc2luZyBIVFRQIGhlYWRl
cnM6ICUiIEdTVF9QVFJfRk9STUFULCBzdHJ1Y3R1cmUpOwogICAgICAgICAgICAgaWYgKGNvbnN0
IGNoYXIqIHVyaSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJ1cmkiKSkg
ewotICAgICAgICAgICAgICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgICAgICAg
ICAgICAgIFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgICAgICAgICAg
ICAgIG1fb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKIAogICAgICAg
ICAgICAgICAgIGlmICh1cmwgIT0gbV91cmwpIHsKQEAgLTIxNjYsNyArMjE2Niw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb25maWd1cmVEb3dubG9hZEJ1ZmZlcihHc3RF
bGVtZW50KiBlbGVtZW50KQogICAgIGdfb2JqZWN0X3NldChlbGVtZW50LCAidGVtcC10ZW1wbGF0
ZSIsIG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG51bGxwdHIpOwogICAgIEdTVF9ERUJVR19P
QkpFQ1QocGlwZWxpbmUoKSwgIlJlY29uZmlndXJlZCBmaWxlIGRvd25sb2FkIHRlbXBsYXRlIGZy
b20gJyVzJyB0byAnJXMnIiwgb2xkRG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbmV3RG93bmxvYWRU
ZW1wbGF0ZS5nZXQoKSk7CiAKLSAgICBTdHJpbmcgbmV3RG93bmxvYWRQcmVmaXhQYXRoIHsgbmV3
RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSB9OworICAgIGF1dG8gbmV3RG93bmxvYWRQcmVmaXhQYXRo
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogICAgIHB1
cmdlT2xkRG93bmxvYWRGaWxlcyhuZXdEb3dubG9hZFByZWZpeFBhdGgucmVwbGFjZSgiWFhYWFhY
IiwgIiIpKTsKIH0KIApAQCAtMjQ3MCwxMSArMjQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAgICAgICAgIC8vIHRob3VnaC4gV2Ug
bmVlZCB0byB0YWtlIHRoZSBiYXNlIG9mIHRoZSBjdXJyZW50IHVybCBhbmQKICAgICAgICAgLy8g
YXBwZW5kIHRoZSB2YWx1ZSBvZiBuZXctbG9jYXRpb24gdG8gaXQuCiAgICAgICAgIFVSTCBiYXNl
VXJsID0gZ3N0X3VyaV9pc192YWxpZChuZXdMb2NhdGlvbikgPyBVUkwoKSA6IG1fdXJsOwotICAg
ICAgICBVUkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZyB7IG5ld0xvY2F0aW9uIH0pOwor
ICAgICAgICBVUkwgbmV3VXJsID0gVVJMKGJhc2VVcmwsIFN0cmluZzo6ZnJvbUxhdGluMShuZXdM
b2NhdGlvbikpOwogCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHBsYXliaW5VcmxTdHI7
CiAgICAgICAgIGdfb2JqZWN0X2dldChtX3BpcGVsaW5lLmdldCgpLCAiY3VycmVudC11cmkiLCAm
cGxheWJpblVybFN0ci5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgICAgIFVSTCBwbGF5YmluVXJs
IHsgU3RyaW5nIHsgcGxheWJpblVybFN0ci5nZXQoKSB9IH07CisgICAgICAgIFVSTCBwbGF5Ymlu
VXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHBsYXliaW5VcmxTdHIuZ2V0KCkpIH07CiAKICAgICAg
ICAgaWYgKHBsYXliaW5VcmwgPT0gbmV3VXJsKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JK
RUNUKHBpcGVsaW5lKCksICJQbGF5YmluIGFscmVhZHkgaGFuZGxlZCByZWRpcmVjdGlvbi4iKTsK
QEAgLTI1OTksNyArMjU5OSw3IEBAIGJvb2wgaXNNZWRpYURpc2tDYWNoZURpc2FibGVkKCkKICNp
ZiBQTEFURk9STShXUEUpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgc3Rk
OjpjYWxsX29uY2Uob25jZSwgW10oKSB7Ci0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJX
UEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOworICAgICAgICBhdXRvIHMgPSBT
dHJpbmc6OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIldQRV9TSEVMTF9ESVNBQkxFX01FRElBX0RJ
U0tfQ0FDSEUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFN0
cmluZyB2YWx1ZSA9IHMuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91
dExvY2FsZSgpOwogICAgICAgICAgICAgcmVzdWx0ID0gKHZhbHVlID09ICIxIiB8fCB2YWx1ZSA9
PSAidCIgfHwgdmFsdWUgPT0gInRydWUiKTsKQEAgLTM5MTgsNyArMzkxOCw3IEBAIEluaXREYXRh
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFyc2VJbml0RGF0YUZyb21Qcm90ZWN0aW9u
TWVzc2FnZShHc3RNZXNzCiAgICAgICAgICAgICBHc3RCdWZmZXIqIGRhdGEgPSBudWxscHRyOwog
ICAgICAgICAgICAgZ3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQuZ2V0KCksICZldmVu
dEtleVN5c3RlbUlkLCAmZGF0YSwgbnVsbHB0cik7CiAKLSAgICAgICAgICAgIGluaXREYXRhLmFw
cGVuZCh7IFN0cmluZyB7IGV2ZW50S2V5U3lzdGVtSWQgfSwgZGF0YSB9KTsKKyAgICAgICAgICAg
IGluaXREYXRhLmFwcGVuZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbUlkKSwg
ZGF0YSB9KTsKICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdTVF9F
VkVOVF9TRVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQwMzksNyAr
NDAzOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVQcm90ZWN0
aW9uRXZlbnQoR3N0RXZlbnQqIGV2ZW50KQogICAgIGNvbnN0IGNoYXIqIGV2ZW50S2V5U3lzdGVt
VVVJRCA9IG51bGxwdHI7CiAgICAgR3N0QnVmZmVyKiBpbml0RGF0YSA9IG51bGxwdHI7CiAgICAg
Z3N0X2V2ZW50X3BhcnNlX3Byb3RlY3Rpb24oZXZlbnQsICZldmVudEtleVN5c3RlbVVVSUQsICZp
bml0RGF0YSwgbnVsbHB0cik7Ci0gICAgaW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbVVVSUQgfSwgaW5pdERhdGEgfSk7CisgICAgaW5pdGlhbGl6
YXRpb25EYXRhRW5jb3VudGVyZWQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1V
VUlEKSwgaW5pdERhdGEgfSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp3YWl0aW5nRm9yS2V5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmNwcAppbmRleCAwM2VkYWM4YzhlOTdiYjFlYWE0YjMzYjNmNDQ1OWFjZGFkZmI5
NDc0Li4yOTU3YmNlZjNkMGQwZTE4MjhlZjVkZjdiZjhiY2U1ZGVjMmY4ZDlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0xOTUsNyArMTk1LDcg
QEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpnZXRMYW5ndWFnZUNvZGUoR3N0VGFn
TGlzdCogdGFncywgQXRvbVN0cmluZyYgdmEKIHsKICAgICBTdHJpbmcgbGFuZ3VhZ2U7CiAgICAg
aWYgKGdldFRhZyh0YWdzLCBHU1RfVEFHX0xBTkdVQUdFX0NPREUsIGxhbmd1YWdlKSkgewotICAg
ICAgICBsYW5ndWFnZSA9IFN0cmluZyB7IGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYz
OV8xKGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkpIH07CisgICAgICAgIGxhbmd1YWdlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdzdF90YWdfZ2V0X2xhbmd1YWdlX2NvZGVfaXNvXzYzOV8xKGxhbmd1YWdl
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgR1NUX0RFQlVHKCJDb252ZXJ0ZWQgdHJhY2sgJWQn
cyBsYW5ndWFnZSBjb2RlIHRvICVzLiIsIG1faW5kZXgsIGxhbmd1YWdlLnV0ZjgoKS5kYXRhKCkp
OwogICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gdmFsdWUpIHsKICAgICAgICAgICAgIHZhbHVlID0g
bGFuZ3VhZ2U7CkBAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyOjpnZXRUYWcoR3N0VGFnTGlzdCogdGFncywgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIFMKICAg
ICBHVW5pcXVlT3V0UHRyPGdjaGFyPiB0YWdWYWx1ZTsKICAgICBpZiAoZ3N0X3RhZ19saXN0X2dl
dF9zdHJpbmcodGFncywgdGFnTmFtZSwgJnRhZ1ZhbHVlLm91dFB0cigpKSkgewogICAgICAgICBH
U1RfREVCVUcoIlRyYWNrICVkIGdvdCAlcyAlcy4iLCBtX2luZGV4LCB0YWdOYW1lLCB0YWdWYWx1
ZS5nZXQoKSk7Ci0gICAgICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IHRhZ1ZhbHVlLmdldCgpIH07
CisgICAgICAgIHZhbHVlID0gU3RyaW5nVHlwZSB7IFN0cmluZzo6ZnJvbUxhdGluMSh0YWdWYWx1
ZS5nZXQoKSkgfTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKaW5k
ZXggZDdiZTgwNTE4ZWQ2OWVjZWNkNzE2ZmFiMjMyMzBmOGM3NjBiOTZjNS4uMzA1ZTUxYWZmNzVj
NWZiMGJhM2FlYWQyYTE1NDMwZjJjYTRmNGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
RnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIHdlYmtp
dEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgZ3N0X3BhZF9hZGRfcHJvYmUoc2lua1BhZC5nZXQoKSwgcHJvYmVUeXBlLCBbXShHc3RQYWQq
LCBHc3RQYWRQcm9iZUluZm8qIGluZm8sIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9i
ZVJldHVybiB7CiAgICAgICAgIGF1dG8gW21vZGlmaWVkQnVmZmVyLCBtZXRhXSA9IGVuc3VyZVZp
ZGVvRnJhbWVNZXRhZGF0YShHU1RfUEFEX1BST0JFX0lORk9fQlVGRkVSKGluZm8pKTsKICAgICAg
ICAgR1NUX1BBRF9QUk9CRV9JTkZPX0RBVEEoaW5mbykgPSBtb2RpZmllZEJ1ZmZlcjsKLSAgICAg
ICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChTdHJpbmcgeyByZWludGVycHJldF9j
YXN0PGNoYXIqPih1c2VyRGF0YSkgfSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVz
dGFtcCgpLCBHU1RfQ0xPQ0tfVElNRV9OT05FKSk7CisgICAgICAgIG1ldGEtPnByaXYtPnByb2Nl
c3NpbmdUaW1lcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHVzZXJEYXRhKSksIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwgR1NU
X0NMT0NLX1RJTUVfTk9ORSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKICAg
ICB9LCBnc3RfZWxlbWVudF9nZXRfbmFtZShlbGVtZW50KSwgZ19mcmVlKTsKIApAQCAtMTM1LDcg
KzEzNSw3IEBAIHZvaWQgd2Via2l0R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgaWYgKCFtZXRhKQogICAgICAgICAgICAgcmV0dXJu
IEdTVF9QQURfUFJPQkVfT0s7CiAKLSAgICAgICAgU3RyaW5nIGVsZW1lbnROYW1lIHsgcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH07CisgICAgICAgIGF1dG8gZWxlbWVudE5hbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpKTsK
ICAgICAgICAgYXV0byB2YWx1ZSA9IG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5nZXQoZWxl
bWVudE5hbWUpOwogICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KGVsZW1l
bnROYW1lLCBzdGQ6Om1ha2VfcGFpcih2YWx1ZS5maXJzdCwgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFt
cCgpKSk7CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZDY0MDRjMTIwY2E4YWRlMTBm
NzVlYjdiOWIzYWRjMmQ1YzNkMzkwYS4uOTZkZmNmYzEyY2VjN2NiYzA0ZTNkM2NmYjU5OWU1NzM1
ZTMyM2UzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
dXBkYXRlQ29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEs
IDIwLCAwKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMoZ3N0X2NvZGVjX3V0aWxzX2NhcHNf
Z2V0X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBT
dHJpbmcgeyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmc6
OmZyb21MYXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAKICAgICBjYWxsT25NYWluVGhyZWFk
QW5kV2FpdChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cAppbmRleCBkMGFkNjcyZDcxMDk3Y2Y5MTJhMTczMjI3MDVkZjBlZWQzYzIwOGUzLi5kNTExZGEx
MDAxOWNiNDFkMmU4ODY0NGMzZjNhOTliNzcxN2Y4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBib29s
IHdlYktpdFdlYlNyY1NldEV4dHJhSGVhZGVyKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUq
IHZhbHVlLCBncG9pCiAKICAgICBHU1RfREVCVUcoIkFwcGVuZGluZyBleHRyYSBoZWFkZXI6IFwi
JXM6ICVzXCIiLCBmaWVsZE5hbWUsIGZpZWxkQ29udGVudC5nZXQoKSk7CiAgICAgUmVzb3VyY2VS
ZXF1ZXN0KiByZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Kj4odXNlckRhdGEp
OwotICAgIHJlcXVlc3QtPnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcgeyBmaWVsZE5hbWUgfSwg
U3RyaW5nIHsgZmllbGRDb250ZW50LmdldCgpIH0pOworICAgIHJlcXVlc3QtPnNldEhUVFBIZWFk
ZXJGaWVsZChTdHJpbmc6OmZyb21MYXRpbjEoZmllbGROYW1lKSwgU3RyaW5nOjpmcm9tTGF0aW4x
KGZpZWxkQ29udGVudC5nZXQoKSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02NDQsNyAr
NjQ0LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3Jj
KiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIKICAgICBBU1NFUlQobWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24gIT0gbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKIAogICAgIEdTVF9ERUJV
R19PQkpFQ1Qoc3JjLCAiUG9zdGluZyB0YXNrIHRvIHJlcXVlc3QgUiV1ICVzIHJlcXVlc3RlZFBv
c2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQgIiBzdG9wUG9zaXRpb249JSIgR19HVUlOVDY0X0ZP
Uk1BVCwgbWVtYmVycy0+cmVxdWVzdE51bWJlciwgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpLCBt
ZW1iZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbiwgbWVtYmVycy0+c3RvcFBvc2l0aW9uKTsKLSAgICBV
UkwgdXJsIHsgU3RyaW5nIHsgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSkgfTsKIAog
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXRBbGxvd0Nv
b2tpZXModHJ1ZSk7CkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3Jj
TWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExvY2tlcjxXZWJLaXRXZWIK
ICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihtZW1iZXJzLT5yZWZlcnJlcik7CiAKICAgICBp
ZiAocHJpdi0+aHR0cE1ldGhvZC5nZXQoKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9k
KFN0cmluZyB7IHByaXYtPmh0dHBNZXRob2QuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0
SFRUUE1ldGhvZChTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+aHR0cE1ldGhvZC5nZXQoKSkpOwog
CiAjaWYgVVNFKFNPVVApCiAgICAgLy8gQnkgZGVmYXVsdCwgSFRUUCBBY2NlcHQtRW5jb2Rpbmcg
aXMgZGlzYWJsZWQgaGVyZSBhcyB3ZSBkb24ndApAQCAtNjgxLDcgKzY4MSw3IEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhM
b2NrZXI8V2ViS2l0V2ViCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZvcm1hdGVkUmFuZ2Uu
cmVzZXQoZ19zdHJkdXBfcHJpbnRmKCJieXRlcz0lIiBHX0dVSU5UNjRfRk9STUFUICItIiwgbWVt
YmVycy0+cmVxdWVzdGVkUG9zaXRpb24pKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMs
ICJSYW5nZSByZXF1ZXN0OiAlcyIsIGZvcm1hdGVkUmFuZ2UuZ2V0KCkpOwotICAgICAgICByZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZyB7IGZv
cm1hdGVkUmFuZ2UuZ2V0KCkgfSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nOjpmcm9tTGF0aW4xKGZvcm1hdGVkUmFuZ2Uu
Z2V0KCkpKTsKICAgICB9CiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlYWRQb3NpdGlvbiA9PSBtZW1i
ZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbik7CiAKQEAgLTg4MSw3ICs4ODEsNyBAQCBjb25zdCBnY2hh
ciogY29uc3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIAogc3RhdGljIFVSTCBj
b252ZXJ0UGxheWJpblVSSShjb25zdCBjaGFyKiB1cmlTdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFVS
TCB7IFN0cmluZyB7IHVyaVN0cmluZyB9IH07CisgICAgcmV0dXJuIFVSTCB7IFN0cmluZzo6ZnJv
bUxhdGluMSh1cmlTdHJpbmcpIH07CiB9CiAKIHN0YXRpYyBnY2hhciogd2ViS2l0V2ViU3JjR2V0
VXJpKEdzdFVSSUhhbmRsZXIqIGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAppbmRl
eCAwNGVhZTAwY2E1NTM5ZTdkMmQ5YjI4Mzk1Y2U5YWUzZjY4NzEyMjlkLi5iYzUzOWE4NzQ3ODAy
ODE4MTNmNmFmMzAwYWUyZTAyYjc2YWU2MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAK
QEAgLTEyMiw5ICsxMjIsOSBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgQ0RNRmFjdG9yeVRodW5k
ZXI6OnN1cHBvcnRlZEtleVN5c3RlbXMoKSBjb25zdAogICAgIGlmIChzdXBwb3J0ZWRLZXlTeXN0
ZW1zLmlzRW1wdHkoKSkgewogICAgICAgICBzdGQ6OnN0cmluZyBlbXB0eVN0cmluZzsKICAgICAg
ICAgaWYgKG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpz
X1dpZGV2aW5lS2V5U3lzdGVtLCBlbXB0eVN0cmluZy5jX3N0cigpKSA9PSBFUlJPUl9OT05FKQot
ICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoR1N0cmVhbWVyRU1FVXRpbGl0
aWVzOjpzX1dpZGV2aW5lS2V5U3lzdGVtKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3Rl
bXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfV2lk
ZXZpbmVLZXlTeXN0ZW0pKTsKICAgICAgICAgaWYgKG9wZW5jZG1faXNfdHlwZV9zdXBwb3J0ZWQo
R1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtLCBlbXB0eVN0cmluZy5j
X3N0cigpKSA9PSBFUlJPUl9OT05FKQotICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5h
cHBlbmQoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKTsKKyAgICAg
ICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShHU3Ry
ZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pKTsKICAgICAgICAgR1NUX0RF
QlVHKCIlenUgc3VwcG9ydGVkIGtleSBzeXN0ZW1zIiwgc3VwcG9ydGVkS2V5U3lzdGVtcy5zaXpl
KCkpOwogICAgIH07CiAgICAgcmV0dXJuIHN1cHBvcnRlZEtleVN5c3RlbXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1l
ckVNRVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAppbmRleCBkMmFkZTg3MzBjMDRlNzU1MDJj
NmEwNDRhMDE3OWM5MzI2YzllM2E4Li5hYTYxYzQxYWZjZTQ1YWNhMjE3YjdmNWVmN2RkY2U5MWVm
YjI4ZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKQEAg
LTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IGNoYXIqKiBzdHJlYW1FbmNy
eXB0aW9uQWxsb3dlZFN5c3RlbXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqKj4oZ192
YWx1ZV9nZXRfYm94ZWQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUpKTsKICAg
ICAgICAgaWYgKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcykgewogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyAr
K2kpCi0gICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0ZW1zLmFwcGVuZChzdHJlYW1FbmNy
eXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0pOworICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lz
dGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lz
dGVtc1tpXSkpOwogICAgICAgICB9CiAgICAgfQogICAgIGNvbnN0IEV2ZW50VmVjdG9yJiBldmVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVs
aW5lLmNwcAppbmRleCAxYWYwZTU1NGQ4MmJhZTU4MTkzY2FjNjk3NWFhNWE3MzFlMGEzODVlLi4w
YmIyMmQ1MjU5MGVkZTI1NzhmMDRmMjZhNjE2ZjkxNjBjNDRiM2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIHN0ZDo6dHVwbGU8R1JlZlB0
cjxHc3RDYXBzPiwgQXBwZW5kUGlwZWxpbmU6OlN0cmVhbVR5cGUsIEZsb2F0U2l6ZT4gQXBwZW5k
UGlwZWxpCiAKICAgICBjb25zdCBjaGFyKiBvcmlnaW5hbE1lZGlhVHlwZSA9IGNhcHNNZWRpYVR5
cGUoZGVtdXhlclNyY1BhZENhcHMpOwogICAgIGF1dG8mIGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xldG9uKCk7Ci0gICAgaWYgKCFnc3RSZWdp
c3RyeVNjYW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OkNv
bmZpZ3VyYXRpb246OkRlY29kaW5nLCBTdHJpbmcgeyBvcmlnaW5hbE1lZGlhVHlwZSB9KSkgewor
ICAgIGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nOjpmcm9tTGF0aW4x
KG9yaWdpbmFsTWVkaWFUeXBlKSkpIHsKICAgICAgICAgc3RyZWFtVHlwZSA9IFN0cmVhbVR5cGU6
OkludmFsaWQ7CiAgICAgfSBlbHNlIGlmIChkb0NhcHNIYXZlVHlwZShkZW11eGVyU3JjUGFkQ2Fw
cywgR1NUX1ZJREVPX0NBUFNfVFlQRV9QUkVGSVgpKSB7CiAgICAgICAgIHByZXNlbnRhdGlvblNp
emUgPSBnZXRWaWRlb1Jlc29sdXRpb25Gcm9tQ2FwcyhkZW11eGVyU3JjUGFkQ2FwcykudmFsdWVf
b3IoRmxvYXRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKaW5kZXggZjFlYzYzMWE5N2UzYmRiMjliYTQxYjRjZDVmYzY2YTYxMTAx
MzRhMC4uMDFmMTBiNzhlNjE2ODk2MWEyMDUxNmUxYTE3NjRhMjUzOGE0N2ZkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFt
ZXJNZWRpYURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCkBAIC03NCw3
ICs3NCw3IEBAIEF0b21TdHJpbmcgR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbjo6ZXh0cmFjdENv
ZGVjTmFtZSgpCiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGVzY3JpcHRpb24oZ3N0
X3BiX3V0aWxzX2dldF9jb2RlY19kZXNjcmlwdGlvbihvcmlnaW5hbENhcHMuZ2V0KCkpKTsKLSAg
ICBTdHJpbmcgY29kZWNOYW1lKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBhdXRvIGNvZGVjTmFt
ZSA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXNjcmlwdGlvbi5nZXQoKSk7CiAKICAgICAvLyBSZXBv
cnQgIkguMjY0IChNYWluIFByb2ZpbGUpIiBhbmQgIkguMjY0IChIaWdoIFByb2ZpbGUpIiBqdXN0
IGFzICJILjI2NCIgdG8gYWxsb3cgY2hhbmdlcyBiZXR3ZWVuIGJvdGggdmFyaWFudHMKICAgICAv
LyBnbyB1bm5vdGljZWQgdG8gdGhlIFNvdXJjZUJ1ZmZlciBsYXllci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGI2MTUw
ZGE0M2QxNzg0ZmQ1NTI1ZmJiZmE5Yjg1MjcwZWUwMzA5OWQuLjVkNTQxOWU4NDhlYTY2ZTQ1ZjVk
ODMzNWI1Yzk2MmNlNjQ0NTlkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHNpemVfdCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCkg
Y29uc3QKICAgICAgICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScK
ICAgICAgICAgLy8gICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEw
MDAwMCcKIAotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0la
RSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJN
U0VfTUFYX0JVRkZFUl9TSVpFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOwogICAgICAgICAg
ICAgZm9yIChjb25zdCBTdHJpbmcmIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMLmNwcAppbmRleCA5MTk2M2QzMjkwOTNlMzZlMDRhMmQ5ZmFiMWMzZmRhYzM0NmYwYWZm
Li5lZTY0MzFhYzgwZTExMGY1NDk5Y2NlYzFkNWNjMGI2YmM1YTM2OGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgRXh0ZW5zaW9uc0dMT3Bl
bkdMOjp2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRp
dmlzCiBTdHJpbmcgRXh0ZW5zaW9uc0dMT3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBB
U1NFUlQoIW1fdXNlSW5kZXhlZEdldFN0cmluZyk7Ci0gICAgcmV0dXJuIFN0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
Pig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKICNpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAK
aW5kZXggZTkyMzI0YWNiZjdlNGZlMGFhYmUyOTIzNzM0NTIxNDY4NGNhZTI5Yy4uMmRjNjQ1NWI0
NDI0MzMyMTlkMTNmOTdiNjI3N2M4MDcyNWY1Njc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbi5jcHAKQEAgLTc0LDggKzc0LDggQEAgRXh0ZW5zaW9uc0dMT3BlbkdMQ29t
bW9uOjpFeHRlbnNpb25zR0xPcGVuR0xDb21tb24oR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNv
bnQKICAgICAsIG1fcmVxdWlyZXNSZXN0cmljdGVkTWF4aW11bVRleHR1cmVTaXplKGZhbHNlKQog
ICAgICwgbV91c2VJbmRleGVkR2V0U3RyaW5nKHVzZUluZGV4ZWRHZXRTdHJpbmcpCiB7Ci0gICAg
bV92ZW5kb3IgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0
cmluZyhHTF9WRU5ET1IpKSk7Ci0gICAgbV9yZW5kZXJlciA9IFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRFUkVSKSkpOworICAgIG1fdmVu
ZG9yID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6
Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkpOworICAgIG1fcmVuZGVyZXIgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5E
RVJFUikpKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHZlbmRvckNvbXBvbmVudHMgPSBtX3ZlbmRv
ci5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLnNwbGl0KCcgJyk7CiAgICAgaWYgKHZlbmRvckNv
bXBvbmVudHMuY29udGFpbnMoIm52aWRpYSIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5j
cHAKaW5kZXggYjkxMTEwMjU5ODM1ODkwZDY1MTNmYTAzM2MzMmY5NTFlN2VmZGJkOS4uZWRhZTEy
OTJmMTg5M2VkZDg0MjI0NGJmYTdmZmM0NTYwZDA5OGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMRVMuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBFeHRlbnNpb25zR0xPcGVuR0xF
Uzo6cGxhdGZvcm1TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFN0cmlu
ZyBFeHRlbnNpb25zR0xPcGVuR0xFUzo6Z2V0RXh0ZW5zaW9ucygpCiB7Ci0gICAgcmV0dXJuIFN0
cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVO
U0lPTlMpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmlu
ZGV4IDBhNmE4OGNmMWFkNGM4NGQxMDAxNDRkMzU5NzU5Yjk1YWU3YjIzYmYuLjhmNTQ2NmE1YTNl
N2JlOWVjNmFjMDI5NTlhZmZkZTQ5ODViMDZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmNwcApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpnZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VDb250ZXh0
Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6aGludChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRB
dHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCmluZGV4IDY2ZGJlYzQwYWFjMmI3Mzk3
YTE5MzMxMTY2YzcyYmQ2MjYxNmUwNmUuLjI4NjViOGI4YWE0NDFjMzU5ZTJhNDZhMzRhZTY5ZWQ3
ZTc3OTdiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0
ZXMuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmli
dXRlcyYgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKQogI2lmIFVTRShPUEVO
R0xfRVMpCiAgICAgICAgIGF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCA9IHRydWU7CiAKLSAg
ICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgYXV0byBleHRlbnNpb25z
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9y
dHNOUE9UVGV4dHVyZXMgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVy
ZV9ucG90Iik7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSA9IGV4
dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX0VYVF91bnBhY2tfc3ViaW1hZ2UiKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBjN2ExYzI3MjVkM2Qy
ZTJlZjliZTk3M2Q5Y2ZjOGNmYWI5OGI4OGRmLi45MDZmOWI0M2MwZTdlNzJlMWQyZDZmNmExZDc5
M2Q5OGMxMTBlM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKQEAg
LTM0LDcgKzM0LDcgQEAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OlRleHR1cmVNYXBwZXJGUFND
b3VudGVyKCkKICAgICAsIG1fbGFzdEZQUygwKQogICAgICwgbV9mcmFtZUNvdW50KDApCiB7Ci0g
ICAgU3RyaW5nIHNob3dGUFNFbnZpcm9ubWVudCB7IGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikg
fTsKKyAgICBhdXRvIHNob3dGUFNFbnZpcm9ubWVudCA9IFN0cmluZzo6ZnJvbUxhdGluMShnZXRl
bnYoIldFQktJVF9TSE9XX0ZQUyIpKTsKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgbV9mcHNJ
bnRlcnZhbCA9IFNlY29uZHMoc2hvd0ZQU0Vudmlyb25tZW50LnRvRG91YmxlKCZvaykpOwogICAg
IGlmIChvayAmJiBtX2Zwc0ludGVydmFsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24uY3BwCmluZGV4IDk1M2RmMzc4ZWM1ZjFiZjZhMGZhZGQ5ZDlhYmIx
OTdjOGYwMGEwMWYuLjY4Y2IxNTA2YTEwZWEyZTFhZGQwYmJkZDBmNmRmNTMwNGUyNjFmY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC0x
MTYsNyArMTE2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+JiBtaW1lVHlwZUNhY2hlKCkKICAgICBpZiAoY2FjaGVkVHlwZXMuZ2V0KCku
c2l6ZSgpID4gMCkKICAgICAgICAgcmV0dXJuIGNhY2hlZFR5cGVzOwogCi0gICAgY2FjaGVkVHlw
ZXMuZ2V0KCkuYWRkKFN0cmluZygidmlkZW8vbXA0IikpOworICAgIGNhY2hlZFR5cGVzLmdldCgp
LmFkZCgidmlkZW8vbXA0Il9zKTsKIAogICAgIFBST1BWQVJJQU5UIHByb3BWYXJNaW1lVHlwZUFy
cmF5OwogICAgIFByb3BWYXJpYW50SW5pdCgmcHJvcFZhck1pbWVUeXBlQXJyYXkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcAppbmRleCBjMDE3ZjIxZmJkODRmMmI4NDJlMDFmMjQ4Y2M0NDA3MjNjYjFhYWI4Li5k
ZDVmYjg2MzQyNzdiYWVhOTJiZTZlY2FmNmQyZmJjN2NlN2VlOWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cApAQCAtMTMwMCwxMSArMTMwMCwxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpz
aW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgR0RLX0tFWV9JU09f
RW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgR0RLX0tFWV9SZXR1
cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVybiBTdHJpbmco
IlxyIl9zKTsKICAgICBjYXNlIEdES19LRVlfQmFja1NwYWNlOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAgICBjYXNlIEdE
S19LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZ3VuaWNoYXIgYyA9IGdka19r
ZXl2YWxfdG9fdW5pY29kZSh2YWwpOwogICAgICAgICBnbG9uZyBud2M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRMaWJXUEUuY3BwCmluZGV4IDg0MzIzMWQzYjU4YTAyZmQ5ZDkzZDNhMzdiODY5OTdiZTU2ZDBm
MzAuLmE3MjRmMTI2ZjhmMzg5ZDQ2YmE1YzFhOTQxZWVmNzZmZGM1OWM5NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJX
UEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRMaWJXUEUuY3BwCkBAIC0xMjk3LDExICsxMjk3LDExIEBAIFN0cmluZyBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAg
Y2FzZSBXUEVfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfS1BfRW50ZXI6CiAgICAg
Y2FzZSBXUEVfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgV1BFX0tFWV9CYWNrU3BhY2U6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgi
X3MpOwogICAgIGNhc2UgV1BFX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcAppbmRleCAyNTc2NmQ5NzVmMjQ4NDMwMzhhNzYwZTcyNjllODRlYzE0
MTM2MWE4Li41OTU3Mzk1NTIzMTFiZDNkMWJkNDAxMmFlNWNhMDg2OWJjZGZlN2EyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAK
QEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyOjph
ZGREZXZpY2UoR1JlZlB0cjxHc3REZXZpY2U+JiYgZGV2aWNlKQogCiAgICAgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZSB0eXBlID0gZGV2aWNlVHlwZSgpOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4g
ZGV2aWNlQ2xhc3NDaGFyKGdzdF9kZXZpY2VfZ2V0X2RldmljZV9jbGFzcyhkZXZpY2UuZ2V0KCkp
KTsKLSAgICBTdHJpbmcgZGV2aWNlQ2xhc3MoU3RyaW5nKGRldmljZUNsYXNzQ2hhci5nZXQoKSkp
OworICAgIGF1dG8gZGV2aWNlQ2xhc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGV2aWNlQ2xhc3ND
aGFyLmdldCgpKTsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpN
aWNyb3Bob25lICYmICFkZXZpY2VDbGFzcy5zdGFydHNXaXRoKCJBdWRpbyIpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
ICYmICFkZXZpY2VDbGFzcy5zdGFydHNXaXRoKCJWaWRlbyIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlD
YXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApp
bmRleCA0MWM4YTQ4MzAzODQ2ZDRkYmFlM2IzOTc4NDZiNTI5NzJlNmEwMjA5Li5jMmU4Njk3YWZk
YjZmZGQ4NGQ2MmExM2FkYjZlOWJmOTdhNmRlODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAt
OTQsNyArOTQsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJEaXNwbGF5Q2FwdHVy
ZURldmljZU1hbmFnZXI6OmNyZWF0ZURpc3BsYXlDYXB0dXJlUwogICAgIGdfdmFyaWFudF9nZXQo
cmVzdWx0LmdldCgpLCAiKG8pIiwgJm9iamVjdFBhdGgub3V0UHRyKCkpOwogICAgIHdhaXRSZXNw
b25zZVNpZ25hbChvYmplY3RQYXRoLmdldCgpKTsKIAotICAgIFN0cmluZyByZXF1ZXN0UGF0aChv
YmplY3RQYXRoLmdldCgpKTsKKyAgICBhdXRvIHJlcXVlc3RQYXRoID0gU3RyaW5nOjpmcm9tTGF0
aW4xKG9iamVjdFBhdGguZ2V0KCkpOwogICAgIGF1dG8gc2Vzc2lvblBhdGggPSByZXF1ZXN0UGF0
aC5yZXBsYWNlKCIvcmVxdWVzdC8iLCAiL3Nlc3Npb24vIikucmVwbGFjZSh0b2tlbiwgc2Vzc2lv
blRva2VuKTsKIAogICAgIC8vIEZJWE1FOiBNYXliZSBjaGVjayB0aGlzIGRlcGVuZGluZyBvbiBk
ZXZpY2UudHlwZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCmluZGV4IDA3MWJiMWE0N2JlMDc4
MDQ2MDQyMDVmZTIyMGQ4YTczZDNkZTY5YzguLjJhNzE3MmNlNzcyNGExZmZhODg0MzkwNTg3MzJh
YmE1YmQ1NTVjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
Q2VydGlmaWNhdGVJbmZvIENlcnRpZmljYXRlSW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIAog
U3RyaW5nIENlcnRpZmljYXRlSW5mbzo6dmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5n
KG1fdmVyaWZpY2F0aW9uRXJyb3IpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShY
NTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSk7CiB9CiAK
IENlcnRpZmljYXRlSW5mbzo6Q2VydGlmaWNhdGUgQ2VydGlmaWNhdGVJbmZvOjptYWtlQ2VydGlm
aWNhdGUoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCmluZGV4IDNl
NWQ2ZjFjOTBmNjE4ZWZkMWU1Y2FkMTBkNGEwNmFlZTU5OTYzZGIuLjdkZTg2YzA4ZTM0OTZkZjMw
ZmUxNDA2YjhjYjMyZGZmZTIwY2VjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcApAQCAtMzIwLDcgKzMyMCw3IEBAIEN1
cmxIYW5kbGU6On5DdXJsSGFuZGxlKCkKIAogY29uc3QgU3RyaW5nIEN1cmxIYW5kbGU6OmVycm9y
RGVzY3JpcHRpb24oQ1VSTGNvZGUgZXJyb3JDb2RlKQogewotICAgIHJldHVybiBTdHJpbmcoY3Vy
bF9lYXN5X3N0cmVycm9yKGVycm9yQ29kZSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRp
bjEoY3VybF9lYXN5X3N0cmVycm9yKGVycm9yQ29kZSkpOwogfQogCiB2b2lkIEN1cmxIYW5kbGU6
OmVuYWJsZVNTTEZvckhvc3QoY29uc3QgU3RyaW5nJiBob3N0KQpAQCAtODkxLDcgKzg5MSw3IEBA
IHZvaWQgQ3VybEhhbmRsZTo6YWRkRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoTmV0d29ya0xvYWRN
ZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpCiAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlc3BvbnNl
SGVhZGVyQnl0ZXNSZWNlaXZlZCA9IHJlc3BvbnNlSGVhZGVyU2l6ZTsKIAogICAgIGlmIChpcCkg
ewotICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZyhpcCk7
CisgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGlwKTsKICAgICAgICAgaWYgKHBvcnQpCiAgICAgICAgICAgICBhZGRpdGlvbmFsTWV0
cmljcy0+cmVtb3RlQWRkcmVzcy5hcHBlbmQoIjoiICsgU3RyaW5nOjpudW1iZXIocG9ydCkpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9P
cGVuU1NMSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9P
cGVuU1NMSGVscGVyLmNwcAppbmRleCBkMzliNjViNDQwZThmMmJiMTk1NGU2YzYwYTNlODkyM2Iz
ZjQ2YWI2Li5kM2VlMDdjMWVhMjJjZWExNzhmMTdjMGVkYjM1MzAyZjYxMGVjMWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxw
ZXIuY3BwCkBAIC0zNDAsMTIgKzM0MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlU3VtbWFyeT4gY3JlYXRlU3VtbWFyeUluZm8oY29uc3QgVmVjdG9yPHVpbnQ4XwogCiBT
dHJpbmcgdGxzVmVyc2lvbihjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsg
U1NMX2dldF92ZXJzaW9uKHNzbCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNT
TF9nZXRfdmVyc2lvbihzc2wpKTsKIH0KIAogU3RyaW5nIHRsc0NpcGhlck5hbWUoY29uc3QgU1NM
KiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9DSVBIRVJfZ2V0X25hbWUoU1NMX2dl
dF9jdXJyZW50X2NpcGhlcihzc2wpKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEo
U1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1Ymxp
Y1N1ZmZpeEN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCmluZGV4IGVmODk2MjI0ZmEwN2FhNWZkYTFmYTgyYThiY2NmMWY2
YWQ3NzMwNTcuLmQyZGUwZGQxZTlkZmMxMDVlMmM3N2NkZTllNzFhMWJiNDcxODMzM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFN0cmluZyB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluSW50ZXJuYWwoY29uc3QgcHNsX2N0eF90KiBwc2wsIGNvbnN0IGMK
IHsKICAgICAvLyBwc2xfcmVnaXN0ZXJhYmxlX2RvbWFpbiByZXR1cm5zIGEgcG9pbnRlciB0byBk
b21haW4ncyBkYXRhIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gcHJpdmF0ZSBkb21haW4KICAgICBp
ZiAoY29uc3QgY2hhciogdG9wUHJpdmF0ZURvbWFpbiA9IHBzbF9yZWdpc3RyYWJsZV9kb21haW4o
cHNsLCBkb21haW4pKQotICAgICAgICByZXR1cm4gU3RyaW5nIHsgdG9wUHJpdmF0ZURvbWFpbiB9
OworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcFByaXZhdGVEb21haW4pOwog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRD
dXJsLmNwcAppbmRleCA1NzIwZTI0ZGY4YTAwYWZlN2E5YjE4ZDA0YjIwMjQ0ZTU5MTFjMWNmLi43
MTdlYmRkMWJjNjA5YTcxM2FmMTNkNTVhMDZlMGJiMDAxNjIwNTFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRD
dXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hy
b25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZXNvdXJjZUVycm9y
IFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybUJhZFJlc3BvbnNlRXJyb3IoKQogewog
ICAgIGludCBlcnJvckNvZGUgPSAwOwogICAgIFVSTCBmYWlsaW5nVVJMOwotICAgIFN0cmluZyBs
b2NhbGl6ZWREZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSIpOworICAgIFN0cmluZyBs
b2NhbGl6ZWREZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSJfcyk7CiAKICAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcigiQ1VSTCJfcywgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6
ZWREZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggYThkMjM3MDY0OGQyNDY4ODEyY2U1YjZmOTUzOWFhYjA5NjJlODZiYy4uNmUwYTNkYzdhYzVh
ZGYyMmY1NTNmODExMTM2MzNhMTM1YWU5MjcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpCiAg
ICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2FsbF9jb29raWVz
KGNvb2tpZVN0b3JhZ2UoKSkpOwogICAgIGZvciAoYXV0byogaXRlbSA9IGNvb2tpZXMuZ2V0KCk7
IGl0ZW07IGl0ZW0gPSBnX3NsaXN0X25leHQoaXRlbSkpIHsKICAgICAgICAgR1VuaXF1ZVB0cjxT
b3VwQ29va2llPiBjb29raWUoc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KGl0ZW0tPmRhdGEpKTsK
LSAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChT
dHJpbmcgeyBzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkgfSkgPT0gZG9tYWlu
KSB7CisgICAgICAgIGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhv
c3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgp
KSkpID09IGRvbWFpbikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3
OWRiNTQzMjZjYzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1
NDJmNTBkNjYwZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ns
aXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0
VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9u
UG9saWN5IGZpbGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERh
dGEodXJsRm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQog
ICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUu
aEdsb2JhbCkpOwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUp
OworICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0
bGUpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVh
c2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdl
dFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lv
blBvbGljeSBmaWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAg
ICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUu
aEdsb2JhbCkpOwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVF
eGlzdHNBKGRhdGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJs
ID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3Rl
bVBhdGgoKTsKKyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAg
ICAgICAgICAgIGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwog
ICAgICAgICAgICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURh
dGFPYmplY3QqIGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVj
dC0+R2V0RGF0YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVND
SUkgdGV4dAogICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExv
Y2soc3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAg
ICB0ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2so
c3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9
IGVsc2UgewpAQCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3Qg
RHJhZ0RhdGFNYXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChE
b2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFz
ZVVSTCBpZiBwcmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAg
IFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAg
ICAgdW5zaWduZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNV
UkxTdHIpOwogICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJl
MjQxMmJiYzM4YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNh
NDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3Bw
CkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFp
blRleHQmIHRleHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJ
c0NsaXBib2FyZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9v
d25lcikpIHsKICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEo
Q0ZfVEVYVCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFj
dGVycyBhcyBMYXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRo
YXQgdGhlIHJpZ2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsg
c3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRl
eHQudGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9j
ayhjYkRhdGEpKSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAg
ICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4
ODgsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFn
bWVudChGcmFtZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0
YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEp
IHsKICAgICAgICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xv
YmFsTG9jayhjYkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7Cisg
ICAgICAgICAgICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAg
ICAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNs
b3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoY29udGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1NTTEtleUdlbmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgw
ZWY3YmI3NWRhNzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldp
bi5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBw
b3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5n
cyBzaG91bGQgYmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAg
ICB2LmFwcGVuZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlB
bmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdl
LCBjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hy
L29wZW54ci9PcGVuWFJVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3Blbnhy
L09wZW5YUlV0aWxzLmgKaW5kZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNh
YTlkMi4uMzEzYzMyYTkzNmQ5MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcg
KzYwLDcgQEAgaW5saW5lIFN0cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJ
bnN0YW5jZSBpbnN0YW5jZSkKICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19T
SVpFXTsKICAgICBYclJlc3VsdCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2
YWx1ZSwgYnVmZmVyKTsKICAgICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShi
dWZmZXIpOwogICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAi
PiIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIy
ZmUyY2UwM2IxZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3
aXRjaCAoY2FwYWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2Fz
ZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJh
dGVneTo6Tm9ybWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVh
Z2VyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCJFYWdlciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2Ez
NTk3YzI4MWQxMGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYy
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBA
QCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBV
U0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAg
ICBpZiAoY29uc3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VU
X0FERFIiKSkKLSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07
CisgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIp
OwogI2VuZGlmCiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAg
IGNvbnN0IGNoYXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRy
aXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAg
cHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJ
VF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmlu
ZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYg
cG9ydFN0cmluZy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZy
b21MYXRpbjEoYXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0g
c3RybGVuKCItLWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9Iiwg
aG9zdFN0ckxlbmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJn
ICsgaG9zdFN0ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIGhvc3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
IApAQCAtOTcsMTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlsw
XSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAg
ICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHRhcmdldFN0ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3Ry
bmNtcChhcmcsICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5p
c051bGwoKSkgewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdl
dFN0ckxlbmd0aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJnICsgdGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAjZW5kaWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZp
bmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAK
ICAgICBpZiAoIW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24g
PSBudWxscHRyOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNz
aW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ug
b2YgcGFnZSBjcmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtNzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAg
ICAgLy8gMi4xLiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhl
IHZhbHVlIHRvIGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxp
dGllcyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVk
Q2FwYWJpbGl0aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQg
Y2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxp
dGllcyB3aXRoIGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENh
cGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMp
OwogICAgIGlmICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNN
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBA
IC03MzYsNyArNzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJy
YXkoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAg
ICAgICAgLy8gMy4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpT
T04gTGlzdCwgcmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50Lgot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlz
IGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJf
cykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDks
MTMgKzc0OSwxMyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAg
ICAgIGF1dG8gZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0LT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxp
dGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZh
bGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQg
aW4gZmlyc3RNYXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0K
ICAgICAgICAgLy8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0
IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBt
YXRjaCBjYXBhYmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAo
IWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRj
aCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9
CiAKQEAgLTc5MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2
aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAog
ICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNv
ZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRp
ZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVk
IHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24o
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKn
OC4xIE5ldyBTZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIv
I25ldy1zZXNzaW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVt
YmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQ
dHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmls
aXRpZXNMaXN0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJG
YWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xOTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24o
SlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAg
YXV0byBkdXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICgh
ZHVyYXRpb24pIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBw
YXVzZSBhY3Rpb24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEz
LDcgKzE5MTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0
aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlw
ZSA9IGFjdGlvbkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAi
cGF1c2UiKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
dHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24g
aXMgaW52YWxpZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUg
PSBBY3Rpb246OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVj
dCYgYWMKICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRv
IGtleVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAo
IWtleVZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1p
c3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3Ry
aW5nKCk7CiAgICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkg
dXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8v
IEZJWE1FOiBjaGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0
LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYg
YWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVy
YXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJh
dGlvbikgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24uZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAg
c3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9u
SXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0g
b3JpZ2luVmFsdWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0g
b3JpZ2luT2JqZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7
CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIg
ZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVt
ZW50IG9iamVjdCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcg
KzIwMTUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAo
b3JpZ2luID09ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9p
bnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4n
IGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBi
b29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFj
dGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1
ZSgieCJfcykpIHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgieSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2Uo
KnlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9p
bnRlckNhbmNlbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBv
aW50ZXJDYW5jZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50
ZXIgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgIH0KIApAQCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQog
ICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1
dHRvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYg
KCFidXR0b25WYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24i
KTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0
dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24g
PSB1bnNpZ25lZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicg
aXMgaW52YWxpZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9y
IHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0
b24oYnV0dG9uLnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6
T2JqZWN0JgogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlv
blN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rp
b24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQs
IEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVl
QXNOdW1iZXJJblJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAo
IWRlbHRhWCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgp
OwpAQCAtMjEzNiw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBp
ZiAoYXV0byBkZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsK
ICAgICAgICAgICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZh
bHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFs
aWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBhY3Rpb24uZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJh
bWV0ZXJzKEpTT046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFt
ZXRlcnNEYXRhVmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBh
cmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIx
NzksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1Bv
aW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBl
ID09ICJ0b3VjaCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlw
ZTo6VG91Y2g7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFt
ZXRlcnMgaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlv
bj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBh
dXRvIGFjdGlvblNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAg
IGlmICghYWN0aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwx
MyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0
aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUi
KQogICAgICAgICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAg
ICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmco
ImlkIl9zKTsKICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcg
aXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0
T3JDcmVhdGVJbnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAg
ICAgaWYgKGlucHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBp
bnB1dCBzb3VyY2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50
eXBlID09ICBJbnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVy
VHlwZSAhPSBwb2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFj
dGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9p
bnRlciB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
X3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0
aW9uSXRlbXMgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlm
ICghYWN0aW9uSXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1
ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rp
b25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGFjdGlvbkl0ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0
aW9uSXRlbXMtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4
LDcgKzIyNzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0
cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25z
QXJyYXkgPSBwYXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rp
b25zQXJyYXkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4
IGEwOWQwOTQxYmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFh
ZjE5MWI5MzY3MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIv
Z3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dl
YkRyaXZlclNlcnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2Vy
dmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFi
aWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRp
ZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAg
LTExMCw3ICsxMTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBh
YmlsaXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBt
YXRjaGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsK
LSAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Vi
a2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOwor
ICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJr
aXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsK
ICAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0t
YXV0b21hdGlvbiJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9
IHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAK
aW5kZXggOTM2NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNj
YWRhMjVlNzM3MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRy
aXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93
aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
OwotICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0
aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2
NzZhYjJjYTEyYTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNl
MmQ3NDA1YTVlNmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dl
YkRyaXZlclNlcnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZl
clNlcnZpY2VXUEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNh
cGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0
V2luZG93UmVjdCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUs
NyArMTA1LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0
eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hl
ZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0
b21hdGlvbiJfcyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmls
aXRpZXMuZ2V0T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0
Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEzM2VmMjA4
YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21M
YXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToK
KyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAg
ICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
cjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBx
dWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFm
YzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBh
MTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
IAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9
OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNU
X1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29w
eS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyAr
NTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3Jp
Z2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25l
UmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAt
NzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxT
dHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmlu
ZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RS
VUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwt
PmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBN
b3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlS
Vk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3Vu
dCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxl
U3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
CmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIz
OTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToK
IFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wg
c3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShT
dHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZp
bGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRG
aWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAg
ICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0
YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDks
NjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
bGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJf
cywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJk
NDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBA
IC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVj
dG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVy
LnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3
ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAw
KTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZElu
dE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0g
Pj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
QUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEp
KSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdD
JywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxk
ZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNh
cGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQ
RUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQg
dG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNv
bnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScs
ICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIp
OwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNU
X0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5Miwz
MiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygp
LmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2Ug
dGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmlu
Z0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywx
MyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBF
WFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgog
ICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNp
dHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3Mp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWls
ZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5z
aHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMx
MSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShl
cXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxk
ZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAg
ICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2
NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygi
MTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsK
IAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygi
MTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUy
LDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0
b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
MyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFi
ODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJj
MjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNX
aXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIp
OworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0
ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7
Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2
OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBA
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykK
IHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJp
bmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFT
Q0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0
cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdC
YWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBz
dHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3Vu
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4
IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2
NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdW
aWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAg
ICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhz
dHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3Rl
cnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJp
bmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZp
ZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1l
Q2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmlu
ZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAg
YXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBv
aW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0
b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5n
IHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBh
dXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwog
ICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICAr
K2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChX
VEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXco
U3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGlu
MSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhT
dHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFh
ZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAx
NWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBA
IC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFy
KQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJs
LnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cu
ZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAg
RVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9y
dCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNl
cigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1Rf
VFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBz
dGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyAr
ODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQog
VEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9j
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdT
aGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQu
b3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIp
LCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVT
VF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwg
dXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1
cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJr
ZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAg
IAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0
b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0s
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwg
dXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsK
ICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZh
bDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9z
KTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5
MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcs
IHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJf
cyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5
MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0
VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIs
ICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RW
ZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAi
Il9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAK
ICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsK
ICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9
dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9z
LCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAg
ICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7
CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkz
MCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAi
dGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
OSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3Ms
ICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMx
LCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9z
LCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
NSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQz
NTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRF
U1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhh
c2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQo
U3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsg
ImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBT
dHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5z
ZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAg
YXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZi
ZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1
MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9t
TGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3lu
dGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9F
USgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGlj
aXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwog
CiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAg
ICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwu
bGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0
ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRl
cmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNU
KFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3Ry
aW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hh
cmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcg
QEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3Rl
ZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBF
Q1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5
Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEo
MC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7
CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxl
YWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcg
anVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFu
IGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAv
LyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9y
IG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAg
IC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmlu
aXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNp
YWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0
KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
c3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwot
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJT
VCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
LmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4
Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3Rh
cnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNU
X1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAg
IEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi
5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0
cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRl
bXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5n
MS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhp
c3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsK
LSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7
CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0
cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3
MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAg
LTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0Zh
aWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFy
IG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcg
eyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGlu
MShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50
RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAg
IAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFj
OGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4
MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRl
c3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZp
c2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFu
Z2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYy
OTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBk
ZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFk
ZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/
XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBh
aXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90
ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9
KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhU
VFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6
IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3Ry
aW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90
ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUx
ZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdj
YTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQog
ewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVy
OjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3Ry
aW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29y
ZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRl
Y29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1
ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5n
KHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNU
X0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVr
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ind3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
Ny4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNv
bS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFp
biksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxl
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7Yi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
Ojpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XD
hMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRl
eCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0
Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRF
U1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29w
ZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAg
ICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7
Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5z
Y29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9w
aWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5p
bnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNj
MmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2lu
Z0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhp
c3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcg
KzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05V
TEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhi
dWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6
OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwg
YnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3
ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hv
c3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywg
IiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlG
JUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJv
Z2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGlu
MSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNr
VVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVy
eSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxh
dGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJf
c30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1
bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hv
c3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVk
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsK
IAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsK
KyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmlu
ZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9
KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0
cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmco
KSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJM
KG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwg
eyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3Bh
dGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0
L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1t
CmluZGV4IDc1MzI4MTg0YzRjZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAuLjdmYzdlZjQx
OTRiMDY1MWU3MmFmYTBhNGVkMjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJU
ZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmln
aW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBp
bmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRh
YmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJh
c2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
YnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRp
b24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZy
b20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBO
U1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGly
ZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tl
cj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNl
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBU
RVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJh
c2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVk
IGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQg
YmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURh
dGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlv
biwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQg
dGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQs
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2Vz
Tm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEg
ZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0
aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRh
YmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJX
aXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAx
MWI5ZDY4NjU0M2ZmMzBhMWI2ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMwNmI3ODYwNTNm
MmFjMDNiNWFkMDcxZTQ2YWViZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBAIFJldGFp
blB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRMbFdOMDZy
NDNhblFxWnlSYnU1SW9IbUhBeWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgiCiAgICAg
Im9EZGtLRjhjd29CZUFlaVJMa1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1FnMTlWUy9W
YUhpNDh0K3oiCiAgICAgIjY2OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1HL3RJNmdm
SmlMbjA1VHo2bll6MzFZNDBGbTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5
UXZhVjl6Iik7CisgICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9zKTsKIAog
ICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NBMmdDQ1FE
K1FZMUpSbk0zSWpBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIKQEAgLTE3
Myw3ICsxNzMsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQog
ICAgICI0Nml6aG91M0dTS3ozWDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5NGNyRDF4
aDlhc2RqZzJEblhjIgogICAgICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1iSWlXbTJy
Nnl0Mmo5aEF1S0pYcE5PSWE0b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhXYkFDdTYx
UlQ1Z0FxQXYvaEI5SlluYzJPaVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJtSS9oSGJ4
S01HM1JrdjlxMUN4K1dCL3YxdDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0
OD0iX3MpOwogCiAgICAgYXV0byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5j
b2RlZFByaXZhdGVLZXkpOwogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2NERlY29k
ZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZjM2NhM2Q1
MjQ4MGM5NDgxNzg3Y2IzYjEwZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlhNTM0YjY4OGY1
M2FlNjgwZDZjMTVjODVlNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBA
QCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2Vu
U2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNU
X1RSVUUoc3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVx
dWVzdDIuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJT
dHJpbmcgPSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5n
UGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/
IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlv
bl91bmxpbmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3Rh
cnQgPSByZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBl
bmQgPSByZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBA
IHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5T
aWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwg
cmVxdWVzdDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2Ug
PyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2Vj
cmV0X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90
b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBz
dGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmlu
ZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5r
YWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0
eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0
b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5p
dFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgp
XSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Nl
Y3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtl
eSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJz
b3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3Nl
Y3JldF90b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJp
bmcuZmluZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4
IDViY2VhODEwOTNjZmVlNWY4ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgwMDg4N2M5YmM0
NjRlM2U1ZTk1NDU0NDlhOTM5MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJh
Y2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2lu
IDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBi
b29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25z
dCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBk
ZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2lu
IGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3Qs
IEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJ
SUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJ
c1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNp
ZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVh
ZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1s
Il9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAg
ICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJj
ZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3Ms
IHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25I
ZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRl
eHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRp
b25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0
aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0
aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVt
YmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0
aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0
aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1v
dmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2Vy
dmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+
PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBA
QCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNP
T1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNz
UG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hv
dWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNP
T1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAi
cmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNh
bWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQ
LCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJy
ZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRp
b25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxk
QmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklz
b2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNl
Q09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9z
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2lu
Il9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7
IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9
LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3Ms
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3
YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2Ug
dGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJl
ZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2Ug
dGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVp
cmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVs
bHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmln
aW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25l
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJf
cywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJiYTNlNjYwMjE3
MjAuLmY0NzBlNmVjYTZjODRjNzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2lj
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCkBAIC0yMTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBD
b250ZW50UnVsZUxpc3QpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAgICAg
SFRUUFNlcnZlciBzZXJ2ZXIoW10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewogICAgICAgICBj
b25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L2h0bWwiIH19LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgInRleHQv
aHRtbCJfcyB9IH0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRl
bnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29y
a2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiX3MgfSB9LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6
ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRU
UFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVl
c3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgi
c3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJlNTk2ZTE4MGRk
MzkuLmVlZTNlMDI4MTVkZTJkMWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtd
ID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFt
ZT48L2h0bWw+IjsKLWNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1
dG8gcGFyZW50RnJhbWUgPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1l
Lmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJh
bWUgPQogIjxodG1sPiIKICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlw
dD4iCkBAIC0yOTksNyArMjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsi
CiAiICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIK
LSI8L2h0bWw+IjsKKyI8L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVS
TC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVS
TC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4NTQ3Zjk5Li45MDky
ZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0x
MDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkK
ICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5T
VVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFs
UGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5n
XSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0
ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVS
TC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzViMGI4M2EzLi5hNWY3
YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBAIC00Niw3ICs0
Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAgICAgRE9NSFRN
TEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtkb2N1bWVu
dEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4dCA9IFthbmNo
b3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQu
b3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCmluZGV4IDNh
MmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2FlY2QxODllNzY0MThh
ZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdl
YlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkCiAKIC0o
dm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdp
dGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUg
KilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2Up
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAg
ICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBT
ZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBlZGY1YzEyYWU2Yi4u
MGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVj
dGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25u
ZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAot
ICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAi
U2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9Cisg
ICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7
ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNv
Y2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAg
fSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RG
TW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBA
IFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytU
ZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhl
T3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9q
aVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBj
czRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5
WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwog
ICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29k
ZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7
CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2
YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJW
V3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1n
VCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIy
SXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAg
ICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJw
aTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9
IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUo
KmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRl
c3Rlci9tYWluLmNwcCBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRl
eCBjZjEzMWFlYmEwYWUzODY4OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdl
YmQzNjM1ODE2MzJjOGNjZTQ4M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJX
ZWJLaXRUZXN0ZXIvbWFpbi5jcHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21h
aW4uY3BwCkBAIC01NywxMyArNTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBz
dGF0aWMgdm9pZCB0ZXN0U3VtbWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3Ry
aW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwq
IGFOdWxsU3RyaW5nSW1wbCA9IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVt
cHR5U3RyaW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAg
ICBTdHJpbmdJbXBsKiBhbkVtcHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwog
Ci0gICAgU3RyaW5nIGFuOEJpdFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJp
dFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBs
KiBhbjhCaXRTdHJpbmdJbXBsID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBh
MTZCaXRTdHJpbmcgPSB1dGYxNlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>
<flag name="commit-queue"
          id="485624"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457132</attachid>
            <date>2022-04-08 18:04:53 -0700</date>
            <delta_ts>2022-04-08 20:01:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408180452.patch</filename>
            <type>text/plain</type>
            <size>174806</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5
ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4
IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNl
ZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRm
b3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZh
ODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZh
YzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJiNzM5N2ExOTMzMTE2
NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2OWVkN2U3Nzk3YjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwogCi0gICAgICAgIFN0
cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uc1N0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRl
eHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3RleHR1cmVfbnBvdCIp
OwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSBleHRlbnNpb25z
U3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5
NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEw
ZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigp
CiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmlu
ZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAg
YXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJL
SVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwg
PSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sg
JiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAppbmRleCA5NTNkZjM3OGVjNWYxYmY2YTBmYWRkOWQ5YWJiMTk3YzhmMDBh
MDFmLi42OGNiMTUwNmExMGVhMmUxYWRkMGJiZGQwZjZkZjUzMDRlMjYxZmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgbWltZVR5cGVDYWNoZSgpCiAgICAgaWYgKGNhY2hlZFR5cGVzLmdldCgpLnNpemUoKSA+
IDApCiAgICAgICAgIHJldHVybiBjYWNoZWRUeXBlczsKIAotICAgIGNhY2hlZFR5cGVzLmdldCgp
LmFkZChTdHJpbmcoInZpZGVvL21wNCIpKTsKKyAgICBjYWNoZWRUeXBlcy5nZXQoKS5hZGQoInZp
ZGVvL21wNCJfcyk7CiAKICAgICBQUk9QVkFSSUFOVCBwcm9wVmFyTWltZVR5cGVBcnJheTsKICAg
ICBQcm9wVmFyaWFudEluaXQoJnByb3BWYXJNaW1lVHlwZUFycmF5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAK
aW5kZXggYzAxN2YyMWZiZDg0ZjJiODQyZTAxZjI0OGNjNDQwNzIzY2IxYWFiOC4uZGQ1ZmI4NjM0
Mjc3YmFlYTkyYmU2ZWNhZjZkMmZiYzdjZTdlZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEz
MDAsMTEgKzEzMDAsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIEdES19LRVlfSVNPX0VudGVyOgog
ICAgIGNhc2UgR0RLX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIEdES19LRVlfUmV0dXJuOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7
CiAgICAgY2FzZSBHREtfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBHREtfS0VZX1Rh
YjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGd1bmljaGFyIGMgPSBnZGtfa2V5dmFsX3Rv
X3VuaWNvZGUodmFsKTsKICAgICAgICAgZ2xvbmcgbndjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BF
LmNwcAppbmRleCA4NDMyMzFkM2I1OGEwMmZkOWQ5M2QzYTM3Yjg2OTk3YmU1NmQwZjMwLi5hNzI0
ZjEyNmY4ZjM4OWQ0NmJhNWMxYTk0MWVlZjc2ZmRjNTljOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
TGliV1BFLmNwcApAQCAtMTI5NywxMSArMTI5NywxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgV1BF
X0tFWV9JU09fRW50ZXI6CiAgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgV1BF
X0tFWV9SZXR1cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVy
biBTdHJpbmcoIlxyIl9zKTsKICAgICBjYXNlIFdQRV9LRVlfQmFja1NwYWNlOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAg
ICBjYXNlIFdQRV9LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4u
NTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNl
KEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNs
YXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAg
U3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBh
dXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQo
KSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2
aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFj
OGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRk
NjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5n
ZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWdu
YWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0
aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmpl
Y3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFj
ZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7
CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5
cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
ZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1
ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1
YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmlj
YXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBD
ZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3Zlcmlm
aWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJp
ZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkw
ZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4
Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxl
Ojp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0
aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9z
dHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxf
ZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVT
U0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1
cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5
dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAg
ICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShp
cCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAKaW5kZXggZDM5YjY1YjQ0MGU4ZjJiYjE5NTRlNmM2MGEzZTg5MjNiM2Y0NmFiNi4u
ZDNlZTA3YzFlYTIyY2VhMTc4ZjE3YzBlZGIzNTMwMmY2MTBlYzFmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcApA
QCAtMzQwLDEyICszNDAsMTIgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZVN1
bW1hcnk+IGNyZWF0ZVN1bW1hcnlJbmZvKGNvbnN0IFZlY3Rvcjx1aW50OF8KIAogU3RyaW5nIHRs
c1ZlcnNpb24oY29uc3QgU1NMKiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9nZXRf
dmVyc2lvbihzc2wpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfZ2V0X3Zl
cnNpb24oc3NsKSk7CiB9CiAKIFN0cmluZyB0bHNDaXBoZXJOYW1lKGNvbnN0IFNTTCogc3NsKQog
ewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVu
dF9jaXBoZXIoc3NsKSkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9DSVBI
RVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50X2NpcGhlcihzc2wpKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZm
aXhDdXJsLmNwcAppbmRleCBlZjg5NjIyNGZhMDdhYTVmZGExZmE4MmE4YmNjZjFmNmFkNzczMDU3
Li5kMmRlMGRkMWU5ZGZjMTA1ZTJjNzdjZGU5ZTcxYTFiYjQ3MTgzMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBTdHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbkludGVybmFsKGNvbnN0IHBzbF9jdHhfdCogcHNsLCBjb25zdCBjCiB7CiAgICAg
Ly8gcHNsX3JlZ2lzdGVyYWJsZV9kb21haW4gcmV0dXJucyBhIHBvaW50ZXIgdG8gZG9tYWluJ3Mg
ZGF0YSBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHByaXZhdGUgZG9tYWluCiAgICAgaWYgKGNvbnN0
IGNoYXIqIHRvcFByaXZhdGVEb21haW4gPSBwc2xfcmVnaXN0cmFibGVfZG9tYWluKHBzbCwgZG9t
YWluKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZyB7IHRvcFByaXZhdGVEb21haW4gfTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSh0b3BQcml2YXRlRG9tYWluKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
aW5kZXggNTcyMGUyNGRmOGEwMGFmZTdhOWIxOGQwNGIyMDI0NGU1OTExYzFjZi4uNzE3ZWJkZDFi
YzYwOWE3MTNhZjEzZDU1YTA2ZTBiYjAwMTYyMDUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50Q3VybC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVzb3VyY2VFcnJvciBTeW5jaHJv
bm91c0xvYWRlckNsaWVudDo6cGxhdGZvcm1CYWRSZXNwb25zZUVycm9yKCkKIHsKICAgICBpbnQg
ZXJyb3JDb2RlID0gMDsKICAgICBVUkwgZmFpbGluZ1VSTDsKLSAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiKTsKKyAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiX3MpOwogCiAgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoIkNVUkwiX3MsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3Jp
cHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGE4ZDIz
NzA2NDhkMjQ2ODgxMmNlNWI2Zjk1MzlhYWIwOTYyZTg2YmMuLjZlMGEzZGM3YWM1YWRmMjJmNTUz
ZjgxMTEzNjMzYTEzNWFlOTI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzQ29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aQogICAgIEdVbmlx
dWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9hbGxfY29va2llcyhjb29raWVT
dG9yYWdlKCkpKTsKICAgICBmb3IgKGF1dG8qIGl0ZW0gPSBjb29raWVzLmdldCgpOyBpdGVtOyBp
dGVtID0gZ19zbGlzdF9uZXh0KGl0ZW0pKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8U291cENvb2tp
ZT4gY29va2llKHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVtLT5kYXRhKSk7Ci0gICAgICAg
IGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5nIHsg
c291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkpIH0pID09IGRvbWFpbikgeworICAg
ICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0cmlu
Zzo6ZnJvbUxhdGluMShzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkpKSA9PSBk
b21haW4pIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3
ZDU1NWUyMGRjYjdjLi4zZTU2MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2Eu
bW0KQEAgLTIwNyw3ICsyMDcsNyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6
OnNob3J0TW9udGhMYWJlbHMoKQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2
ZUNhcGFjaXR5KDEyKTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAg
ICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRp
bjEobmFtZSkpOworICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5h
bWUpOwogICAgIHJldHVybiBtX3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMz
NGZlNzQ4OGFkM2RkN2NlY2M4OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFl
YmIzYjI1YzYxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2lu
L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9j
YWxlV2luLmNwcApAQCAtMzk4LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxp
emVMb2NhbGVEYXRhKCkKICAgICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3Rp
dHV0aW9uMHRvOTsKICAgICBnZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04s
IGRpZ2l0U3Vic3RpdHV0aW9uKTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRT
dWJzdGl0dXRpb24wdG85KSB7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIxIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAg
ICAgIHN5bWJvbHMuYXBwZW5kKCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0g
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIwIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xz
LmFwcGVuZCgiMiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjQiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjci
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI5Il9zKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9j
YWxlSW5mb1N0cmluZyhMT0NBTEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdp
dHMubGVuZ3RoKCkgPj0gMTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNj
ODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBl
ZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRp
bGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFP
YmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmls
ZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3Jt
YXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNo
YXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7
Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAg
IHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAg
ICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1
bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZp
bGVuYQogICAgICAgICAgICAgLy8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNo
YXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7
CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0
YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZp
bGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwor
ICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJp
bmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAg
aWYgKHRpdGxlKQogICAgICAgICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAg
ICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCog
ZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAg
ICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5o
R2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xv
YmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBA
IC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1h
cCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBk
b2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHBy
ZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNy
Y1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25l
ZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAg
ICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNmYmUyNDEyYmJjMzhi
Y2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIzM2E0NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTg0MCw3
ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4
dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6OklzQ2xpcGJvYXJk
Rm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewog
ICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKSkg
ewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJzIGFzIExh
dGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0aGUgcmln
aHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcgeyBzdGF0aWNfY2Fz
dDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAgdGV4dC50ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkp
KTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcgKzg4OCw3IEBAIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1l
JiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JEYXRhID0gOjpHZXRD
bGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0YSkgewogICAgICAg
ICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNi
RGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgICAgICAgICAg
ICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250
ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtl
eUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2Vu
ZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMxODBlZjdiYjc1ZGE3
MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcApAQCAt
MzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1cHBvcnRlZEtleVNp
emVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJpbmdzIHNob3VsZCBi
ZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOworICAgIHYuYXBwZW5k
KCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IFVS
TCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09w
ZW5YUlV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaAppbmRleCA1NjM3MmJiMzU2ZWMzZWMzMmQxYTAxYjNjMGZkODkyZDIyY2FhOWQyLi4zMTNj
MzJhOTM2ZDkxMmZkNjgzOWM0MDc0N2QyMzg2YjZiNTBiMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaApAQCAtNjAsNyArNjAsNyBAQCBp
bmxpbmUgU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGlu
c3RhbmNlKQogICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOwogICAg
IFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZm
ZXIpOwogICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZyhidWZmZXIpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtub3duICIsIGludCh2YWx1ZSksICI+Iik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAzYjFm
MGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNl
c3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBh
YmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3Jt
YWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2Vy
Il9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2Vi
RHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgxZDEw
YTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThhZjJmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGludCBXZWJE
cml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lmIFVTRShJTlNQRUNU
T1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwogICAgIGlmIChjb25z
dCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9UQVJHRVRfQUREUiIpKQot
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIgfTsKKyAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVudlZhcik7CiAjZW5kaWYK
ICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hh
ciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2Vydmlj
ZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdl
U3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltp
XSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ld
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAg
aWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5n
LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRT
dHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0t
aG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVu
Z3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3Ry
TGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9z
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC05Nywx
MyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgdGFyZ2V0
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGFyZ2V0U3Ry
TGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywg
Ii0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5nLmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsgdGFyZ2V0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyB0
YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRp
ZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25P
ckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICgh
bV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRl
ZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNy
YXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03
MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpw
cm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEu
IElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8g
YW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4g
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRp
ZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGgg
YXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYg
KCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3
MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2Fw
YWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAz
LjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCBy
ZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBp
biBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEz
IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmls
aXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChp
KS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJp
bGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1h
dGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAv
LyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5n
IHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFi
aWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkx
LDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nl
c3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1h
dGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAz
LDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNl
c3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Np
b24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRl
ZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0
aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyAr
ODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3Qs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpT
ZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBt
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5
MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmpl
Y3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlv
biJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9u
SXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBu
dWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlk
IG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlm
IChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6
U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkg
YWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAg
ICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNo
ZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJh
dGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1
ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmpl
Y3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAg
ICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9i
amVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVy
T3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0g
InBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxp
ZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkg
ewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlO
KTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5
Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJ
TlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAg
ICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2Vs
IikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNl
bDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZh
bHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1p
c3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVk
VmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlk
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
ICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24u
dmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9
IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
ImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlcklu
UmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7
Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdk
ZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2
LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRl
bHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAg
ICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9N
SU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5k
ZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNP
Tjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFW
YWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFt
ZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNo
IikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsK
ICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
cG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52
YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkw
LDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9u
U2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rp
b25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAg
IGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2Ugewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwog
ICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24m
IHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlu
cHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5w
dXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJj
ZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNl
IHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElu
cHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBv
aW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9
IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25J
dGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMg
aW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNl
KFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRl
bXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+
Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFu
IGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBh
cmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFs
aWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFi
YTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkzNjcw
MTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJp
dmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vy
dmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJp
bGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxp
dGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5k
b3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzEx
MCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29u
c3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBh
YmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBX
RUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9u
Il9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAppbmRleCA5MzY3
MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcxY2NhZGEyNWU3Mzcx
ZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9X
ZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2
ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1D
YXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2Fw
YWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7CisgICAgY2FwYWJpbGl0aWVz
LnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dl
YkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhMTJh
MDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVhNWU2
ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2Vy
dmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQ
RS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUlu
aXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVz
KCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBA
QCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0
aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxp
dGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9z
IH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRP
YmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyMTMzMTVmYjdiYjdhNWQ4NjRjYTgyOWI5MzNi
MTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRiYmFmZjFiNGQ2YzczOTBhMTMzZWYyMDhiYTA5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDY1IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJh
c2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VU
cmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAo
dGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlu
a2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1l
bnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dl
YktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNz
YWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29j
a2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RD
ZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJp
dmF0ZUtleSk6CisKIDIwMjItMDQtMDggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQ3JlYXRlIHNlcGVyYXRlIHF1ZXVlIGZvciB1
bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQw
YjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmln
aW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+
aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3Ry
aW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1v
dmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkp
OwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBs
KCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdp
bmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3
IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jv
c3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsK
QEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlv
bmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxT
dHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAg
IFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmln
aW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4
Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4
MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZp
bGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwot
ICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3Vj
Y2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3Ry
aW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1Rf
VFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcy
NWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEg
QEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2Vy
LCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVn
ZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVy
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdj
OC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2
MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmco
KTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
cjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3Ro
KCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFy
YWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMw
LDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3Rl
ZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpm
cm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxs
c2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVy
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgt
Yml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVp
bGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1
bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3
aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQs
IGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNu
J3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2Un
LCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRl
ci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxz
ZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNp
dHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAg
ICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4K
ICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJf
cyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAv
LyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
IHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUg
Y2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAw
KTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
QUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRl
ci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBj
YXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBD
bGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6
ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsK
ICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVp
bGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygw
KTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxk
ZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5k
KCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIy
LmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBi
dWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVp
bGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIy
ICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBi
dWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsK
ICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBh
dG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRv
bVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRk
MjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZi
M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBA
IC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3Ry
aW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7
CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NF
UlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIi
KSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShl
bXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgw
OTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2
MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0
cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAg
ICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFs
IGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0Jh
Y2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAi
U3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdC
YWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQz
NGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0
MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNX
aXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdW
aWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygi
aGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNX
aXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1w
dHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3
IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmll
d1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmll
d1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFy
YWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5n
Vmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhl
bG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQ
b2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0
b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBF
WFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3
ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0
Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBv
aW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50
c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJp
cExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5n
Vmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhl
bGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmco
IkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdW
aWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAi
KSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3
aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRl
M2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlk
ZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2
MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQ
RUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2wo
KSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNv
bSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cu
ZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJV
RSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Ii9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImlu
ZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwu
aGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50
IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZy
YWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwg
Y3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBz
dGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RG
X1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5h
bWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRw
Oi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8i
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmls
ZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRl
VVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJm
aWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8v
dXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBA
IC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7
CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0
b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VS
TCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFs
MSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJM
IHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3si
a2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAg
ICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJf
cywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1
cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7
eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAg
IFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIm
a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7Imtl
eTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFs
MyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwg
dXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVS
TCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFs
MyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0s
IHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0
ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBV
UkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtl
eTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9z
IH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIw
KTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7
ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIp
OwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9z
IH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1
cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1
cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgg
e3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9z
IH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwy
OSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwg
dXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9
In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCks
IHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwg
dGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiks
IHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rv
ci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIy
ZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVj
dG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAi
azEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0
cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2
MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3Ms
ICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBl
ZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWly
KSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIx
ZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2Qy
MzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmlu
Zy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApA
QCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQog
ICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3Ry
aW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNp
dCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1
Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJp
bmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1Rf
RVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7
CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAg
ICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQog
CiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAg
U3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3Rl
cnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0
YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0
ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdU
RiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwog
ICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJl
c3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVF
KHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwog
fQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMs
NTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5
U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5r
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8g
c3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQg
cmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0
ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwg
cmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgx
LjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ug
b25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFM
U0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMg
c3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFz
SW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7
CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkp
OwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBA
IC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQog
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJp
bmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRG
OCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygi
VGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7
CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmlu
ZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0
ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVD
VF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+
aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gp
CiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmlu
ZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBF
Q1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhC
aXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4
IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBj
ZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsx
NzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlb
Ml0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJ
IH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25B
U0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJ
KSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFT
Q0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVz
dFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJj
NmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJj
NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25p
dG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVz
dERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2Vk
RGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0
ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRo
aXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJU
aGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBm
b3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1
Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1
ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQ
SGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQ
YXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywK
ICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVND
SUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVu
dCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6
OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5n
Ojpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAog
ICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZp
ZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9z
LAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJ
blF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9
KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2Nj
Y2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkx
MDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRD
b2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0
RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0
cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktp
dCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVu
Y29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5n
LCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhp
c3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMx
Y2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBA
IC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxl
Llx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0
cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVz
dC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJi
bC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54
bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4w
LjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykp
OwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZT
dHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1w
bGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhv
c3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
w6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1Q
bGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRp
bjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNj
ZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0
OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0
YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yo
c2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAg
IHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAg
ICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQu
dG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29y
ZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJV
RShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRk
NTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAt
NDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsK
LSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxl
KFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxl
Il9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhp
c3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29u
dGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIp
OwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEo
KSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNp
emUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdp
dGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4
IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIy
ODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5j
b2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0j
w5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYw
JTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTgl
OEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMp
OwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAg
IFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0
aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGgl
MjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0
aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
fSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0
dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywg
InF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0x
NTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5j
b2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXpl
ZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7
CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFM
OjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6
VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxh
dXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNo
ZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4
NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9o
b3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmlu
Zygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVD
MyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMl
OUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUz
MjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcy
YWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAg
LTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAv
LyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9u
IGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQg
cmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFu
IGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQg
c3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERp
cmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIp
OwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhT
dHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tl
ciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndl
YmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNr
ZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRo
aXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIg
dGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJh
c2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkK
ICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUg
T3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVk
IGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAg
LTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAg
ICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0
YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3Jt
YXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3Ry
aW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rv
cnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBk
YXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRo
KGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigi
aHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1Qo
RGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkK
ICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0
aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3Zl
IHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAg
TlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURp
cmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBh
dGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNr
ZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFz
ZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3Jp
Z2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQz
ZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQw
NzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lk
ZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJi
dTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3
b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIK
ICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZu
WXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsK
KyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5n
IHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJ
akFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3
IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpo
b3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRu
WGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVL
SlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9o
QjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXEx
Q3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAK
ICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0
ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29k
ZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3
ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMx
NWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2
b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFy
dHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJu
c3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXpl
KCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0
cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtl
eSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJz
b3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2Fi
bGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVl
c3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtl
eS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVl
c3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZv
aWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0
eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5z
aXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBr
ZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygi
c291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
c2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVx
dWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3Rh
cnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5B
bmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2
NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVz
OnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmlu
Z1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNy
ZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCci
Jywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5
M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0
NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03
Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2
aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsg
Tm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywg
WWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNv
dXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9u
Q09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3Jp
Z2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dh
cCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxp
dGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBk
ZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdp
biBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0
LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAg
IGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAg
ICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3Vy
Y2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09F
UCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAg
ICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9z
KTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09P
UCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQot
ICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9s
aWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09F
UCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5h
dGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjpp
bml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRU
UFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2
b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3Qg
Y2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBz
b25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRv
cHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUt
b3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNv
cnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0g
ZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4i
KSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJl
LWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNv
dXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29y
cCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0g
ZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0g
InJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwg
ZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUt
Y29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNl
IHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNl
IGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGly
ZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9l
c24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMs
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0
aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJl
Y3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
ICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0s
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsg
fSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGlj
IGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2
ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxl
TGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVy
IHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24u
cmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29u
bmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIg
fX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0g
fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwg
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQp
LnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlw
dCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChb
PV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCks
ICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVs
IGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2Uw
MjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+
PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4i
OwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRG
cmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9p
ZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0
bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5
OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2
aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4i
OworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4
IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2Nl
ODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRl
eHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9
IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJk
XV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJp
bmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAg
ICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4
IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3
NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVT
VChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxl
bWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBx
dWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsK
ICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0
cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3Jn
LyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0
MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1
NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0K
QEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZp
ZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6
KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5p
c2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
SFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpp
bmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4
YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJT
b2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5k
bGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEw
MSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAg
ICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29j
a2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAg
IHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rp
b24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2Vw
dCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxp
emUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5l
Y3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVp
bnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwx
UEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAg
Im1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEz
QWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1ow
TlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1
cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAg
YXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmlj
YXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3
ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQog
ICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJo
ZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5
V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBS
dUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJi
ZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSksw
SExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVj
b2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFBy
aXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4u
Y3BwIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWVi
YTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYz
MmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rl
ci9tYWluLmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAg
LTU3LDEzICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lk
IHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9
OworICAgIFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJp
bmdJbXBsID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcg
eyAiIiB9OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0lt
cGwqIGFuRW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJp
bmcgYW44Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0g
U3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0
cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmlu
ZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485628"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457135</attachid>
            <date>2022-04-08 19:22:15 -0700</date>
            <delta_ts>2022-04-08 20:55:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408192214.patch</filename>
            <type>text/plain</type>
            <size>176269</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5
ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4
IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNl
ZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRm
b3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZh
ODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZh
YzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJiNzM5N2ExOTMzMTE2
NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2OWVkN2U3Nzk3YjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwogCi0gICAgICAgIFN0
cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uc1N0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRl
eHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3RleHR1cmVfbnBvdCIp
OwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSBleHRlbnNpb25z
U3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5
NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEw
ZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigp
CiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmlu
ZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAg
YXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJL
SVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwg
PSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sg
JiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAppbmRleCA5NTNkZjM3OGVjNWYxYmY2YTBmYWRkOWQ5YWJiMTk3YzhmMDBh
MDFmLi42OGNiMTUwNmExMGVhMmUxYWRkMGJiZGQwZjZkZjUzMDRlMjYxZmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgbWltZVR5cGVDYWNoZSgpCiAgICAgaWYgKGNhY2hlZFR5cGVzLmdldCgpLnNpemUoKSA+
IDApCiAgICAgICAgIHJldHVybiBjYWNoZWRUeXBlczsKIAotICAgIGNhY2hlZFR5cGVzLmdldCgp
LmFkZChTdHJpbmcoInZpZGVvL21wNCIpKTsKKyAgICBjYWNoZWRUeXBlcy5nZXQoKS5hZGQoInZp
ZGVvL21wNCJfcyk7CiAKICAgICBQUk9QVkFSSUFOVCBwcm9wVmFyTWltZVR5cGVBcnJheTsKICAg
ICBQcm9wVmFyaWFudEluaXQoJnByb3BWYXJNaW1lVHlwZUFycmF5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAK
aW5kZXggYzAxN2YyMWZiZDg0ZjJiODQyZTAxZjI0OGNjNDQwNzIzY2IxYWFiOC4uZGQ1ZmI4NjM0
Mjc3YmFlYTkyYmU2ZWNhZjZkMmZiYzdjZTdlZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEz
MDAsMTEgKzEzMDAsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIEdES19LRVlfSVNPX0VudGVyOgog
ICAgIGNhc2UgR0RLX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIEdES19LRVlfUmV0dXJuOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7
CiAgICAgY2FzZSBHREtfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBHREtfS0VZX1Rh
YjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGd1bmljaGFyIGMgPSBnZGtfa2V5dmFsX3Rv
X3VuaWNvZGUodmFsKTsKICAgICAgICAgZ2xvbmcgbndjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BF
LmNwcAppbmRleCA4NDMyMzFkM2I1OGEwMmZkOWQ5M2QzYTM3Yjg2OTk3YmU1NmQwZjMwLi5hNzI0
ZjEyNmY4ZjM4OWQ0NmJhNWMxYTk0MWVlZjc2ZmRjNTljOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
TGliV1BFLmNwcApAQCAtMTI5NywxMSArMTI5NywxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgV1BF
X0tFWV9JU09fRW50ZXI6CiAgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgV1BF
X0tFWV9SZXR1cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVy
biBTdHJpbmcoIlxyIl9zKTsKICAgICBjYXNlIFdQRV9LRVlfQmFja1NwYWNlOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAg
ICBjYXNlIFdQRV9LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4u
NTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNl
KEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNs
YXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAg
U3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBh
dXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQo
KSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2
aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFj
OGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRk
NjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5n
ZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWdu
YWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0
aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmpl
Y3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFj
ZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7
CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5
cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
ZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1
ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1
YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmlj
YXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBD
ZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3Zlcmlm
aWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJp
ZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkw
ZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4
Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxl
Ojp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0
aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9z
dHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxf
ZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVT
U0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1
cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5
dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAg
ICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShp
cCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAKaW5kZXggZDM5YjY1YjQ0MGU4ZjJiYjE5NTRlNmM2MGEzZTg5MjNiM2Y0NmFiNi4u
ZDNlZTA3YzFlYTIyY2VhMTc4ZjE3YzBlZGIzNTMwMmY2MTBlYzFmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcApA
QCAtMzQwLDEyICszNDAsMTIgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZVN1
bW1hcnk+IGNyZWF0ZVN1bW1hcnlJbmZvKGNvbnN0IFZlY3Rvcjx1aW50OF8KIAogU3RyaW5nIHRs
c1ZlcnNpb24oY29uc3QgU1NMKiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9nZXRf
dmVyc2lvbihzc2wpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfZ2V0X3Zl
cnNpb24oc3NsKSk7CiB9CiAKIFN0cmluZyB0bHNDaXBoZXJOYW1lKGNvbnN0IFNTTCogc3NsKQog
ewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVu
dF9jaXBoZXIoc3NsKSkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9DSVBI
RVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50X2NpcGhlcihzc2wpKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZm
aXhDdXJsLmNwcAppbmRleCBlZjg5NjIyNGZhMDdhYTVmZGExZmE4MmE4YmNjZjFmNmFkNzczMDU3
Li5kMmRlMGRkMWU5ZGZjMTA1ZTJjNzdjZGU5ZTcxYTFiYjQ3MTgzMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBTdHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbkludGVybmFsKGNvbnN0IHBzbF9jdHhfdCogcHNsLCBjb25zdCBjCiB7CiAgICAg
Ly8gcHNsX3JlZ2lzdGVyYWJsZV9kb21haW4gcmV0dXJucyBhIHBvaW50ZXIgdG8gZG9tYWluJ3Mg
ZGF0YSBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHByaXZhdGUgZG9tYWluCiAgICAgaWYgKGNvbnN0
IGNoYXIqIHRvcFByaXZhdGVEb21haW4gPSBwc2xfcmVnaXN0cmFibGVfZG9tYWluKHBzbCwgZG9t
YWluKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZyB7IHRvcFByaXZhdGVEb21haW4gfTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSh0b3BQcml2YXRlRG9tYWluKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
aW5kZXggNTcyMGUyNGRmOGEwMGFmZTdhOWIxOGQwNGIyMDI0NGU1OTExYzFjZi4uNzE3ZWJkZDFi
YzYwOWE3MTNhZjEzZDU1YTA2ZTBiYjAwMTYyMDUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50Q3VybC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVzb3VyY2VFcnJvciBTeW5jaHJv
bm91c0xvYWRlckNsaWVudDo6cGxhdGZvcm1CYWRSZXNwb25zZUVycm9yKCkKIHsKICAgICBpbnQg
ZXJyb3JDb2RlID0gMDsKICAgICBVUkwgZmFpbGluZ1VSTDsKLSAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiKTsKKyAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiX3MpOwogCiAgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoIkNVUkwiX3MsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3Jp
cHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGE4ZDIz
NzA2NDhkMjQ2ODgxMmNlNWI2Zjk1MzlhYWIwOTYyZTg2YmMuLjZlMGEzZGM3YWM1YWRmMjJmNTUz
ZjgxMTEzNjMzYTEzNWFlOTI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzQ29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aQogICAgIEdVbmlx
dWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9hbGxfY29va2llcyhjb29raWVT
dG9yYWdlKCkpKTsKICAgICBmb3IgKGF1dG8qIGl0ZW0gPSBjb29raWVzLmdldCgpOyBpdGVtOyBp
dGVtID0gZ19zbGlzdF9uZXh0KGl0ZW0pKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8U291cENvb2tp
ZT4gY29va2llKHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVtLT5kYXRhKSk7Ci0gICAgICAg
IGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5nIHsg
c291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkpIH0pID09IGRvbWFpbikgeworICAg
ICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0cmlu
Zzo6ZnJvbUxhdGluMShzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkpKSA9PSBk
b21haW4pIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3
ZDU1NWUyMGRjYjdjLi4zZTU2MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2Eu
bW0KQEAgLTIwNyw3ICsyMDcsNyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6
OnNob3J0TW9udGhMYWJlbHMoKQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2
ZUNhcGFjaXR5KDEyKTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAg
ICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRp
bjEobmFtZSkpOworICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5h
bWUpOwogICAgIHJldHVybiBtX3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMz
NGZlNzQ4OGFkM2RkN2NlY2M4OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFl
YmIzYjI1YzYxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2lu
L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9j
YWxlV2luLmNwcApAQCAtMzk4LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxp
emVMb2NhbGVEYXRhKCkKICAgICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3Rp
dHV0aW9uMHRvOTsKICAgICBnZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04s
IGRpZ2l0U3Vic3RpdHV0aW9uKTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRT
dWJzdGl0dXRpb24wdG85KSB7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIxIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAg
ICAgIHN5bWJvbHMuYXBwZW5kKCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0g
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIwIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xz
LmFwcGVuZCgiMiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjQiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjci
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI5Il9zKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9j
YWxlSW5mb1N0cmluZyhMT0NBTEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdp
dHMubGVuZ3RoKCkgPj0gMTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNj
ODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBl
ZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRp
bGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFP
YmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmls
ZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3Jt
YXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNo
YXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7
Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAg
IHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAg
ICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1
bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZp
bGVuYQogICAgICAgICAgICAgLy8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNo
YXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7
CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0
YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZp
bGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwor
ICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJp
bmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAg
aWYgKHRpdGxlKQogICAgICAgICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAg
ICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCog
ZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAg
ICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5o
R2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xv
YmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBA
IC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1h
cCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBk
b2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHBy
ZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNy
Y1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25l
ZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAg
ICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNmYmUyNDEyYmJjMzhi
Y2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIzM2E0NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTg0MCw3
ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4
dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6OklzQ2xpcGJvYXJk
Rm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewog
ICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKSkg
ewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJzIGFzIExh
dGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0aGUgcmln
aHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcgeyBzdGF0aWNfY2Fz
dDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAgdGV4dC50ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkp
KTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcgKzg4OCw3IEBAIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1l
JiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JEYXRhID0gOjpHZXRD
bGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0YSkgewogICAgICAg
ICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNi
RGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgICAgICAgICAg
ICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250
ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtl
eUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2Vu
ZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMxODBlZjdiYjc1ZGE3
MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcApAQCAt
MzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1cHBvcnRlZEtleVNp
emVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJpbmdzIHNob3VsZCBi
ZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOworICAgIHYuYXBwZW5k
KCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IFVS
TCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09w
ZW5YUlV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaAppbmRleCA1NjM3MmJiMzU2ZWMzZWMzMmQxYTAxYjNjMGZkODkyZDIyY2FhOWQyLi4zMTNj
MzJhOTM2ZDkxMmZkNjgzOWM0MDc0N2QyMzg2YjZiNTBiMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaApAQCAtNjAsNyArNjAsNyBAQCBp
bmxpbmUgU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGlu
c3RhbmNlKQogICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOwogICAg
IFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZm
ZXIpOwogICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZyhidWZmZXIpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtub3duICIsIGludCh2YWx1ZSksICI+Iik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAzYjFm
MGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNl
c3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBh
YmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3Jt
YWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2Vy
Il9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2Vi
RHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgxZDEw
YTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThhZjJmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGludCBXZWJE
cml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lmIFVTRShJTlNQRUNU
T1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwogICAgIGlmIChjb25z
dCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9UQVJHRVRfQUREUiIpKQot
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIgfTsKKyAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVudlZhcik7CiAjZW5kaWYK
ICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hh
ciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2Vydmlj
ZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdl
U3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltp
XSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ld
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAg
aWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5n
LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRT
dHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0t
aG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVu
Z3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3Ry
TGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9z
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC05Nywx
MyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgdGFyZ2V0
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGFyZ2V0U3Ry
TGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywg
Ii0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5nLmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsgdGFyZ2V0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyB0
YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRp
ZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25P
ckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICgh
bV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRl
ZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNy
YXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03
MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpw
cm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEu
IElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8g
YW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4g
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRp
ZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGgg
YXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYg
KCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3
MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2Fw
YWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAz
LjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCBy
ZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBp
biBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEz
IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmls
aXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChp
KS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJp
bGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1h
dGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAv
LyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5n
IHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFi
aWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkx
LDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nl
c3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1h
dGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAz
LDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNl
c3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Np
b24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRl
ZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0
aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyAr
ODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3Qs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpT
ZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBt
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5
MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmpl
Y3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlv
biJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9u
SXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBu
dWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlk
IG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlm
IChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6
U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkg
YWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAg
ICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNo
ZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJh
dGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1
ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmpl
Y3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAg
ICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9i
amVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVy
T3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0g
InBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxp
ZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkg
ewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlO
KTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5
Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJ
TlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAg
ICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2Vs
IikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNl
bDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZh
bHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1p
c3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVk
VmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlk
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
ICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24u
dmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9
IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
ImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlcklu
UmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7
Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdk
ZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2
LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRl
bHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAg
ICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9N
SU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5k
ZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNP
Tjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFW
YWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFt
ZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNo
IikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsK
ICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
cG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52
YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkw
LDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9u
U2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rp
b25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAg
IGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2Ugewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwog
ICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24m
IHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlu
cHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5w
dXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJj
ZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNl
IHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElu
cHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBv
aW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9
IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25J
dGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMg
aW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNl
KFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRl
bXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+
Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFu
IGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBh
cmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFs
aWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFi
YTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkzNjcw
MTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJp
dmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vy
dmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJp
bGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxp
dGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5k
b3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzEx
MCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29u
c3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBh
YmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBX
RUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9u
Il9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAppbmRleCA5MzY3
MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcxY2NhZGEyNWU3Mzcx
ZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9X
ZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2
ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1D
YXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2Fw
YWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7CisgICAgY2FwYWJpbGl0aWVz
LnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dl
YkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhMTJh
MDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVhNWU2
ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2Vy
dmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQ
RS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUlu
aXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVz
KCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBA
QCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0
aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxp
dGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9z
IH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRP
YmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDdmNTIxZGEwZmRhMjRhNTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzguLjc3MjRm
YjAwMmExYWEyODAzNmIyZjBmYjJjZDA0ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUVk
aXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50
eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZl
bnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1
dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtl
eUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNv
bW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAog
ICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsK
ICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQg
bW9kZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVj
dXRlZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMDAw
NWQwMTBkMzViYzZjNThjMTg2OWQxMWFjNzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQyNDg2MTQ0
MDU2Y2U4MzQ4ZjU5NTA5ZjU2ZGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0Nyw1IEBA
IFN0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRo
KCkKICAgICAgICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKGRhdGFi
YXNlRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFiYXNlRGly
ZWN0b3J5KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4zNDhkODVh
Yjk2ZGJiYWZmMWI0ZDZjNzM5MGExMzNlZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGlu
ZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0
IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3
ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFt
ZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0w
NC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01l
cmdlLVF1ZXVlXSBDcmVhdGUgc2VwZXJhdGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9uCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAK
aW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFm
MWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBA
QCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAg
U3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25l
UmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00
NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAK
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5n
IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsK
ICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAg
IEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwo
b3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlS
VlN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsK
KyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIg
eyBvcmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9y
aWdpbmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUp
OwpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3Ry
aW5nSGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0
aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEy
MzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsK
ICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9U
UlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5
LT5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVh
ZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdp
bmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92
ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkp
OwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikK
IHsKLSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIx
MjM0Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07
CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1Rf
RVEob3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYy
NTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0
Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApA
QCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBp
bmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBG
aWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19m
aWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAg
ICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0
YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRl
eCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3
YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVt
YmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
QSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVn
ZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBl
NzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdk
NDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IEFwcGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMo
ImVmZ2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmci
LCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmci
X3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMi
X3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJl
aWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFw
cGVuZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJz
KGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEu
YXBwZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hh
cmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2Rl
ZmcjWFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAg
YnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0
ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRT
dHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBW
YXJpYWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiYWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Qi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUs
ICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4
OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwg
IkFCQyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUg
d2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQg
ZG9uJ3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwg
ImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1
aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiks
ICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9z
KSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtl
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0
aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0
IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAg
IGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
ci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxk
ZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJC
IiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7
CiAgICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
VG9TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIwMTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcg
dGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBv
ZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENo
YW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4K
ICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcx
ID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJp
bmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0
cmluZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmlu
ZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkg
PSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNh
cGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5p
bXBsKCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hh
bmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEs
MTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQog
ICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQ
RUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJp
bmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29u
dGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNp
dHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAg
IEVYUEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBw
ZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemlu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5j
YXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3Ry
aW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsy
OTAsMTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9F
USgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODki
X3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwg
YnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Iiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVy
KTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAg
ICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5
KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgRXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExD
aGFyKj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0
cmluZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxk
ZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAg
ICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ID09IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIp
OwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAh
PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3Ry
aW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVy
LnRvQXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1
aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91
bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
SW1wbC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4u
YmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBA
IFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5
KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAg
ICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRF
U1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsK
ICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7
CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShT
dHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5
Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0
NGI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJh
dG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAK
IFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5n
Iik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21T
dHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxp
dGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3
IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAg
ICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVY
UEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVj
NzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUs
NyArNDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsK
ICAgICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3Ry
aW5nVmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxv
Iik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3Ry
aW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAg
RVhQRUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAg
LTg0LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNl
CiAgICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJz
KFN0cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3Ry
aW5nKCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNO
dWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsK
IApAQCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNv
ZGVVbml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMo
U3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3Ry
aW5nIGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5n
VmlldyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNv
ZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJh
dG9ycykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2Rl
UG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50
c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmlu
ZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5n
Vmlldyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJr
aXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMs
MTAgKzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5n
TWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJ
SSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxB
U0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5p
c0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJf
cykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNv
Y29hIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJp
bmc6OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwog
ICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hh
cio+KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJj
ZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZf
VVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFs
aWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRv
U3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1
cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwog
ICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
cGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5k
ZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRt
bCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZh
cj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJf
cyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1
cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBr
dXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwu
bGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyks
IGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZp
ZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElk
ZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZy
YWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRl
cmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJM
KEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhv
c3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6
cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8v
YS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ev
YiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3
d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1Rf
RihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBU
RVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1
cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2
YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBV
UkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwz
LCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9z
KTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEz
MTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0
VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7
ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwx
NSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAg
IFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMm
a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3Ix
MTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIi
fSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4
IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAg
ICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAi
In0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0s
IHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZh
bDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwg
eyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1
cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwg
dXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEy
MiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3Qi
X3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVy
bDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBV
UkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIi
LCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJs
MjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9
LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgp
LCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAg
eyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwog
ICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/
Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAg
ICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/
Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89
PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0
MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3Yjhj
ZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rv
ci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUp
CiBURVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYx
IiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAg
ICBtYXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0
KCJrMSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAu
c2V0KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBb
Jl0gKEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAg
ICAgIHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
RlN0cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIx
YS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAg
VEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxl
bigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50
YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdG
cm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBs
aWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJh
bCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBM
aXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0
cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmlu
Z0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0
ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5n
IExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdB
U0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZz
TnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcg
PSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJo
ZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5n
KSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0
eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRN
aW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+
IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6
ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJp
bmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3Ry
aW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgm
b2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3Vi
bGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVY
UEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7
CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4
MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZv
aykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBs
ZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2sp
OwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJv
ayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdo
aWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFs
c28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBz
cGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJp
bmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5m
aW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBw
YXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChX
VEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
ZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUi
X3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRl
Il9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFy
dGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFz
SW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBA
IFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWb
vSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0g
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgi
VGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0
cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJh
bCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBF
Q1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1w
bCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyAr
MzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmlu
Z1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOwor
ICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlz
TnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBh
YltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBi
N2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZk
M2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29u
dGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0g
ICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0
dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0
ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4
XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1
czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
bGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4u
OWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0
NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRl
c3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUg
Y2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vj
b25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7
Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOwor
Y29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2Vk
IHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJl
dmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAK
IGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4u
NzIzZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAg
LTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6
IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIg
KGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAg
ICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJ
SVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVND
SUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlk
KHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAg
ICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFc
IiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAg
U3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3Vs
ZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUx
Li41NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3
ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5
ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxl
VmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5
ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1Rf
VFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5n
LCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9z
KSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5k
ZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMx
ZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBA
IFRFU1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAg
RVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4
MDNcdTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51
ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82
NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEu
dHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVz
dC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAg
IEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFz
ZGYuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0
ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFs
RG9tYWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9t
YWluLkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJM
b2NhbEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
w4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3Qi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpm
cm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29t
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4
NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFz
ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFz
ZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0
T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykg
ewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3
LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNp
emVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0g
U3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRv
cGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2Nv
cGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGlj
KTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYm
IHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4
IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYy
OTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3Rp
bmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENv
bnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRf
TlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0
byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmls
ZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUo
YnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0
RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRh
KCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4x
KEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVy
LT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1Rf
RihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGlu
Z0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFl
OTljODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQz
ZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VS
TFBhcnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNU
X0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVj
a1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwg
eyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8i
X3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2
U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTgl
OEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRF
bmNvZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2Rpbmcg
bGF0aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGgl
MjBzcGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAg
IGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3Ms
IGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgi
aHR0cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3Ry
aW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNU
X0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VS
TCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284
ODU5MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1
OTEoIklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0
Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygi
d3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMl
RDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAl
QjAlRDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/
Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9z
LCBlbXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0Rh
dGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2
MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZk
Y2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
RGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNU
KERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ug
c2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmln
aW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNl
IGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAg
LTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRh
dGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9u
IGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZy
b20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3Rl
bTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsK
QEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hl
bkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRu
J3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAg
ICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9y
aWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1h
dGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQg
dGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5T
U3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJl
Y3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2Vy
PiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQ
YXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
bigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRF
U1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFz
ZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVs
ZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29u
ZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERl
bGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNh
c2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBv
biBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9y
bWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAw
MjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2Uu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2Uu
bW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVu
dGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3
T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xC
ZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9p
TkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAg
ICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmpt
VEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmlj
YXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNG
QURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lk
ZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1
MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZq
b09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIK
ICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2sy
R0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAg
ICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtl
eUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNl
cnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1
MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJp
YnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVU
b2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAg
ICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgp
LCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEo
KSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0g
c2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJj
ZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9r
ZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rv
a2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIics
IHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRv
a2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmlu
ZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
IikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2Vu
U2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtl
eSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5
Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4
LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihU
b2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEo
KSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJp
bmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWdu
aW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUi
X3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2
ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAg
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09Q
KQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNs
YXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lk
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hh
ciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBk
ZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJl
ZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0
aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBB
U0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVND
SUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0
U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQo
IkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0g
ICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywg
U3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkK
LSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3ki
X3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRl
cnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5h
dGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5h
dGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9u
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0
aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9u
c2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1
cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3Rk
OjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6
SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAog
ICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9v
bCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNv
dXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VD
T0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVz
dGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYg
IXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09F
UCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wg
c291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1v
cmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVz
dGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0g
InNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwog
ICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0
aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVj
dFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgy
LDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNv
dXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09P
UFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlz
IG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsK
ICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2Ug
ZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1l
LW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENP
RVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAg
Ly8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09P
UD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldp
dGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQo
V0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEw
YTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5
MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1
LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0
aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3Qo
Wz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJl
c3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJp
YWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uo
eyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlh
bGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNj
cmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7
CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJD
b250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1
bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBs
YXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0
cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJj
ZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6
ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4Njgz
ZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcx
MDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBA
IC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7
CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFt
ZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZy
YW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJh
bWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOwor
c3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9
J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0
IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Z2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAog
c3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5
N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4
NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJW
aWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0
ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3Ry
aW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3Mp
LCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxp
bmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZl
MmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQw
MDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmll
d0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2Vi
Vmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9N
SFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07
CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jh
c2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBh
MWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdl
IGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFT
UyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0
MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUx
NGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAg
LTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7
ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAi
VXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29j
a2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndl
YnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3Mg
fSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2Nl
cHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6Oklu
Y2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAg
ICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6
dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFE
T3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9n
SmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQ
Rm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95
NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5
OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZp
Y2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBX
VEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1
aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5
ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAg
InZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRL
eEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZN
cXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZm
bDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAog
ICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZh
dGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xs
ZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRm
Yzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAx
MDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVu
dW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRl
cnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxs
U3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmlu
Zy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5n
IGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0lt
cGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAi
csOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEo
InLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0
cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJc
dTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485639"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457137</attachid>
            <date>2022-04-08 20:06:10 -0700</date>
            <delta_ts>2022-04-08 20:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408200609.patch</filename>
            <type>text/plain</type>
            <size>182322</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5
ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4
IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNl
ZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRm
b3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZh
ODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZh
YzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJiNzM5N2ExOTMzMTE2
NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2OWVkN2U3Nzk3YjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwogCi0gICAgICAgIFN0
cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uc1N0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRl
eHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3RleHR1cmVfbnBvdCIp
OwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSBleHRlbnNpb25z
U3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5
NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEw
ZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigp
CiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmlu
ZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAg
YXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJL
SVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwg
PSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sg
JiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAppbmRleCA5NTNkZjM3OGVjNWYxYmY2YTBmYWRkOWQ5YWJiMTk3YzhmMDBh
MDFmLi42OGNiMTUwNmExMGVhMmUxYWRkMGJiZGQwZjZkZjUzMDRlMjYxZmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgbWltZVR5cGVDYWNoZSgpCiAgICAgaWYgKGNhY2hlZFR5cGVzLmdldCgpLnNpemUoKSA+
IDApCiAgICAgICAgIHJldHVybiBjYWNoZWRUeXBlczsKIAotICAgIGNhY2hlZFR5cGVzLmdldCgp
LmFkZChTdHJpbmcoInZpZGVvL21wNCIpKTsKKyAgICBjYWNoZWRUeXBlcy5nZXQoKS5hZGQoInZp
ZGVvL21wNCJfcyk7CiAKICAgICBQUk9QVkFSSUFOVCBwcm9wVmFyTWltZVR5cGVBcnJheTsKICAg
ICBQcm9wVmFyaWFudEluaXQoJnByb3BWYXJNaW1lVHlwZUFycmF5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAK
aW5kZXggYzAxN2YyMWZiZDg0ZjJiODQyZTAxZjI0OGNjNDQwNzIzY2IxYWFiOC4uZGQ1ZmI4NjM0
Mjc3YmFlYTkyYmU2ZWNhZjZkMmZiYzdjZTdlZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEz
MDAsMTEgKzEzMDAsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIEdES19LRVlfSVNPX0VudGVyOgog
ICAgIGNhc2UgR0RLX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIEdES19LRVlfUmV0dXJuOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7
CiAgICAgY2FzZSBHREtfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBHREtfS0VZX1Rh
YjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGd1bmljaGFyIGMgPSBnZGtfa2V5dmFsX3Rv
X3VuaWNvZGUodmFsKTsKICAgICAgICAgZ2xvbmcgbndjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BF
LmNwcAppbmRleCA4NDMyMzFkM2I1OGEwMmZkOWQ5M2QzYTM3Yjg2OTk3YmU1NmQwZjMwLi5hNzI0
ZjEyNmY4ZjM4OWQ0NmJhNWMxYTk0MWVlZjc2ZmRjNTljOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
TGliV1BFLmNwcApAQCAtMTI5NywxMSArMTI5NywxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgV1BF
X0tFWV9JU09fRW50ZXI6CiAgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgV1BF
X0tFWV9SZXR1cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVy
biBTdHJpbmcoIlxyIl9zKTsKICAgICBjYXNlIFdQRV9LRVlfQmFja1NwYWNlOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAg
ICBjYXNlIFdQRV9LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4u
NTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNl
KEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNs
YXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAg
U3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBh
dXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQo
KSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2
aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFj
OGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRk
NjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5n
ZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWdu
YWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0
aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmpl
Y3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFj
ZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7
CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5
cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
ZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1
ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1
YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmlj
YXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBD
ZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3Zlcmlm
aWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJp
ZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkw
ZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4
Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxl
Ojp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0
aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9z
dHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxf
ZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVT
U0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1
cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5
dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAg
ICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShp
cCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAKaW5kZXggZDM5YjY1YjQ0MGU4ZjJiYjE5NTRlNmM2MGEzZTg5MjNiM2Y0NmFiNi4u
ZDNlZTA3YzFlYTIyY2VhMTc4ZjE3YzBlZGIzNTMwMmY2MTBlYzFmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcApA
QCAtMzQwLDEyICszNDAsMTIgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZVN1
bW1hcnk+IGNyZWF0ZVN1bW1hcnlJbmZvKGNvbnN0IFZlY3Rvcjx1aW50OF8KIAogU3RyaW5nIHRs
c1ZlcnNpb24oY29uc3QgU1NMKiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9nZXRf
dmVyc2lvbihzc2wpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfZ2V0X3Zl
cnNpb24oc3NsKSk7CiB9CiAKIFN0cmluZyB0bHNDaXBoZXJOYW1lKGNvbnN0IFNTTCogc3NsKQog
ewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVu
dF9jaXBoZXIoc3NsKSkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9DSVBI
RVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50X2NpcGhlcihzc2wpKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZm
aXhDdXJsLmNwcAppbmRleCBlZjg5NjIyNGZhMDdhYTVmZGExZmE4MmE4YmNjZjFmNmFkNzczMDU3
Li5kMmRlMGRkMWU5ZGZjMTA1ZTJjNzdjZGU5ZTcxYTFiYjQ3MTgzMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBTdHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbkludGVybmFsKGNvbnN0IHBzbF9jdHhfdCogcHNsLCBjb25zdCBjCiB7CiAgICAg
Ly8gcHNsX3JlZ2lzdGVyYWJsZV9kb21haW4gcmV0dXJucyBhIHBvaW50ZXIgdG8gZG9tYWluJ3Mg
ZGF0YSBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHByaXZhdGUgZG9tYWluCiAgICAgaWYgKGNvbnN0
IGNoYXIqIHRvcFByaXZhdGVEb21haW4gPSBwc2xfcmVnaXN0cmFibGVfZG9tYWluKHBzbCwgZG9t
YWluKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZyB7IHRvcFByaXZhdGVEb21haW4gfTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSh0b3BQcml2YXRlRG9tYWluKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
aW5kZXggNTcyMGUyNGRmOGEwMGFmZTdhOWIxOGQwNGIyMDI0NGU1OTExYzFjZi4uNzE3ZWJkZDFi
YzYwOWE3MTNhZjEzZDU1YTA2ZTBiYjAwMTYyMDUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50Q3VybC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVzb3VyY2VFcnJvciBTeW5jaHJv
bm91c0xvYWRlckNsaWVudDo6cGxhdGZvcm1CYWRSZXNwb25zZUVycm9yKCkKIHsKICAgICBpbnQg
ZXJyb3JDb2RlID0gMDsKICAgICBVUkwgZmFpbGluZ1VSTDsKLSAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiKTsKKyAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiX3MpOwogCiAgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoIkNVUkwiX3MsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3Jp
cHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGE4ZDIz
NzA2NDhkMjQ2ODgxMmNlNWI2Zjk1MzlhYWIwOTYyZTg2YmMuLjZlMGEzZGM3YWM1YWRmMjJmNTUz
ZjgxMTEzNjMzYTEzNWFlOTI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzQ29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aQogICAgIEdVbmlx
dWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9hbGxfY29va2llcyhjb29raWVT
dG9yYWdlKCkpKTsKICAgICBmb3IgKGF1dG8qIGl0ZW0gPSBjb29raWVzLmdldCgpOyBpdGVtOyBp
dGVtID0gZ19zbGlzdF9uZXh0KGl0ZW0pKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8U291cENvb2tp
ZT4gY29va2llKHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVtLT5kYXRhKSk7Ci0gICAgICAg
IGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5nIHsg
c291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkpIH0pID09IGRvbWFpbikgeworICAg
ICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0cmlu
Zzo6ZnJvbUxhdGluMShzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkpKSA9PSBk
b21haW4pIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAppbmRleCAzNGE1N2U1YzJj
MmViNjk4OTdhNTczYWU0MDMyYjIzMWI5OTkzYzFkLi5mN2YxNmY5Y2MxNWZhNzFkZWE4YTkwMzMy
YjFkMWRmMGQzMDE3ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OnRyYW5z
cG9ydEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgaW50IHN0YXR1c0NvZGUsIGNvbnN0IFN0
cmluZyYgcmVhc29uUGhyYXNlKQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7
IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9ET01BSU4pIH0sIHN0YXR1c0NvZGUs
IGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3Ry
aW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9ET01BSU4p
KSwgc3RhdHVzQ29kZSwgZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKIH0KIAogUmVzb3VyY2VF
cnJvciBSZXNvdXJjZUVycm9yOjpodHRwRXJyb3IoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIEdFcnJv
ciogZXJyb3IpCkBAIC02NCwxOSArNjQsMTkgQEAgUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjphdXRoZW50aWNhdGlvbkVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9E
T01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvY29jb2EvTG9jYWxlQ29jb2EubW0KaW5kZXggZTYxODFmNDY0Nzg1NTQyNTliNjAyZWM4NDRj
N2Q1NTVlMjBkY2I3Yy4uM2U1NjM1Yzc0NWYyNDBmNmY1NDA3NGIzZDUxNGRkZjU2ZDcwMzgwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCkBAIC0yMDcsNyArMjA3LDcgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUNvY29h
OjpzaG9ydE1vbnRoTGFiZWxzKCkKICAgICB9CiAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnJlc2Vy
dmVDYXBhY2l0eSgxMik7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogV1RGOjptb250aE5hbWUpCi0g
ICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKG5hbWUpKTsKKyAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChu
YW1lKTsKICAgICByZXR1cm4gbV9zaG9ydE1vbnRoTGFiZWxzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCBhNDRlNDM2YjY1ZWMz
MzRmZTc0ODhhZDNkZDdjZWNjODlhN2I0MDRmLi5lOWQxODI4OWQ5NmExNGQ1ZTIxYWNmMWEzYWIx
ZWJiM2IyNWM2MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xv
Y2FsZVdpbi5jcHAKQEAgLTM5OCwxNiArMzk4LDE2IEBAIHZvaWQgTG9jYWxlV2luOjppbml0aWFs
aXplTG9jYWxlRGF0YSgpCiAgICAgRFdPUkQgZGlnaXRTdWJzdGl0dXRpb24gPSBEaWdpdFN1YnN0
aXR1dGlvbjB0bzk7CiAgICAgZ2V0TG9jYWxlSW5mbyhMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9O
LCBkaWdpdFN1YnN0aXR1dGlvbik7CiAgICAgaWYgKGRpZ2l0U3Vic3RpdHV0aW9uID09IERpZ2l0
U3Vic3RpdHV0aW9uMHRvOSkgewotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMCIpOwotICAgICAg
ICBzeW1ib2xzLmFwcGVuZCgiMSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiIpOwotICAg
ICAgICBzeW1ib2xzLmFwcGVuZCgiMyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCIpOwot
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiIp
OwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgi
OCIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOSIpOworICAgICAgICBzeW1ib2xzLmFwcGVu
ZCgiMCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIxIl9zKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjIiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMyJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCI0Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiOSJfcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIGRpZ2l0cyA9IGdldExv
Y2FsZUluZm9TdHJpbmcoTE9DQUxFX1NOQVRJVkVESUdJVFMpOwogICAgICAgICBBU1NFUlQoZGln
aXRzLmxlbmd0aCgpID49IDEwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZj
Yzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYw
ZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0
aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZp
bGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9y
bWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAg
ICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAg
ICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRp
dW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0
YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBm
aWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRh
dGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0gVVJMOjpm
aWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsK
KyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3Ry
aW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAgICAgICAg
IGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAgICAgICAg
ICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3Qq
IGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0
YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAog
ICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUu
aEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEds
b2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpA
QCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFN
YXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCog
ZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBw
cmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWdu
ZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwog
ICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4
YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAs
NyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2Fy
ZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsK
ICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkp
IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBM
YXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJp
Z2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nh
c3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9
IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEp
KSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xv
c2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0
Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAg
ICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhj
YkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAg
ICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAg
ICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29u
dGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xL
ZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdl
bmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRh
NzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAg
LTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlT
aXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQg
YmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVu
ZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBV
UkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0
aWxzLmgKaW5kZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNhYTlkMi4uMzEz
YzMyYTkzNmQ5MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcgKzYwLDcgQEAg
aW5saW5lIFN0cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBp
bnN0YW5jZSkKICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKICAg
ICBYclJlc3VsdCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVm
ZmVyKTsKICAgICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwog
ICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRy
aXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2Ix
ZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBT
ZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2Fw
YWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9h
ZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAg
IHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9y
bWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0
cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdl
ciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dl
YkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQx
MGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2Vi
RHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVD
VE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29u
c3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkK
LSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlm
CiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNo
YXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZp
Y2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2Fn
ZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3Zb
aV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltp
XSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmlu
Zy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0
U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEo
YXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCIt
LWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxl
bmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0
ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhv
c3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcs
MTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0
ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcs
ICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkg
ewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0
aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsg
dGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5k
aWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9u
T3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAo
IW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRy
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0
ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBj
cmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAt
NzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4x
LiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRv
IGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpT
T046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0
aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGlu
IGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0
aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRo
IGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGll
cyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlm
ICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBh
YmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyAr
NzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0Nh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFi
aWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAg
ICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8g
My4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwg
cmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQg
aW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwx
MyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8g
Zmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQo
aSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFi
aWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RN
YXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAg
Ly8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWlu
ZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBh
YmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBh
YmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5
MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmICht
YXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Np
b25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNo
IGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgw
Myw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpT
T046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBT
ZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNz
aW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0
ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFj
dGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcg
KzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8g
bWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0x
OTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJh
dGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24p
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlv
bicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rp
b24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMs
NyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlv
bkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4g
bnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxp
ZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBp
ZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246
OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVl
KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3Zh
bHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9y
IGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAg
ICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBh
Y3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRl
ciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBj
aGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3Rh
dGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRl
bSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlv
bicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVy
YXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJv
b2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0
aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFs
dWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2Jq
ZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAg
ICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBv
YmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVj
dCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRl
ck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBA
QCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09
ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdp
biB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFs
aWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykp
IHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01J
Tik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAg
ICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
eSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwg
SU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5n
JiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNl
bCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5j
ZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9u
IGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nl
c3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25W
YWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBt
aXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25l
ZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxp
ZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIg
dXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9u
LnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0
aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0Jgog
ICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUg
PSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52
YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJ
blJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkg
ewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
ZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEz
Niw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBk
ZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAg
ICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRf
TUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFj
dGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24u
ZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpT
T046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRh
VmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMg
aXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJh
bWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3Vj
aCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMg
aW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGlu
dmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5
MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nl
c3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlv
blNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0
aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9u
IHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVu
Y2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAg
ICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBp
bnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5n
IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsK
ICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxp
ZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9u
JiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJ
bnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlu
cHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3Vy
Y2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJ
bnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBw
b2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1
ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50
ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMg
PSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
SXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdh
Y3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlz
IGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0
ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMt
PmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2Ug
aXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJB
biBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBw
YXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZh
bGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1Nv
dXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQx
YmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3
MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRy
aXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNl
cnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFi
aWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsx
MTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2Fw
YWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0i
IFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlv
biJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3Bw
IGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2
NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3
MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4v
V2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJp
dmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
Q2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9X
ZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEy
YTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVl
NmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNl
cnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VX
UEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1J
bml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGll
cygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVj
dCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcg
QEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBT
dHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxp
dGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0
aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0
aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJf
cyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0
T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYTIxNjNmZDA5MmI0NTQzY2FhNWE1MjA5
MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2FjODg3M2IxNzQzMWY5ZWQ1NjdiMjFjOTliZmIyM2Ix
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3Bw
CkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6c2V0QXR0cmlidXRl
cyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNUUiogYXQKIC8vIElBY2Nlc3Np
YmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Z2V0X2F0dHJpYnV0ZXMoQlNUUiogYXR0cmli
dXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1vZGVsOmExIik7CisgICAgV1RG
OjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSJfcyk7CiAgICAgKmF0dHJpYnV0ZXMgPSBCU3Ry
aW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEyNGE1NzQwNjgwYTI0Mzc5YjgyY2IyNDAz
NDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNkMDRkNjIxYjM1MWU3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcsNyArMjE0Nyw3IEBAIGJvb2wgV2ViVmll
dzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAg
aWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5
cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nIHsg
aW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+
ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2
ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1h
dGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2VydCB0
ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0ZWQsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNw
cAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDExYWM3MTgyZjJjOGNlNzJhLi5lN2Y5NTA2
NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ3
LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6OkdldExhc3RFcnJvcigpICE9IEVSUk9SX0FMUkVB
RFlfRVhJU1RTKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVybiBT
dHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0Y2E4MjliOTMzYjEwNTc3MzVj
Y2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEzM2VmMjA4YmEwOTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAor
MjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZp
bmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBT
dHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
VGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVu
dGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9r
ZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29w
eVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVz
dERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0
aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZl
ci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRz
aGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNh
dGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkp
OgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZl
cnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhy
ZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFk
Q29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFmYzEwZGQ4Yjg0MGIxMDRiZDNk
Li42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBhMTAzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9
IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1w
bCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJl
ZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlM
VlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsK
LSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdp
bmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBF
WFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5n
IG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5
KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZD
b3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3Jp
Z2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAg
ICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5o
YXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3
ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmlu
ZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2
aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcg
c3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwg
eyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwog
ICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMz
NDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIzOTY4NjUxNjg4ODFiNzQxNDdj
ZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVT
eXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGlu
Z19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwor
ICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBz
dWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1h
cHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0YzM1MjRlOTU3MjVjYTguLjdm
OTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1Qo
V1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJB
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRl
Z2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o
aW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJkNDg5M2FjMDA3YzguLmE0ODdl
NTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
Q2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAg
IGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVu
ZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAg
ICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhi
dWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIz
NDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMw
LDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0
cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7
CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIo
KSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGlu
MShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2Qi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwogICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVs
bHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8g
VGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAx
Ni1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2Fw
YWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwg
MSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2Ug
dXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291
bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vz
c2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVy
KTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNp
dHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkp
LCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVp
bGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5v
dCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3Ry
aW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXpp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAg
YnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
c3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25l
ZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHks
IGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBD
aGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5
IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0y
NDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQ
RUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVp
bGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNp
dHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAg
c3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAg
IC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkg
PSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmlu
aygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBA
IC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAg
YnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAg
ICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQ
RUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njci
X3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hy
aW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAg
ZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3Rh
dGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7
CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQo
IjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFw
cGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJp
bmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVp
bGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmlu
ZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiks
IGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcp
OwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFiODY3ZDYyOTBkZDI3YTFkMGIz
OWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJjMjE3YWRmMjhmYjNmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0
ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNXaXRoSWdub3JpbmdBU0NJSUNh
c2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIpOworICAgIFN0cmluZyBzdHJp
bmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlIikpOwogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoIiIpLCAiIikpOworICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJp
bmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIy
YzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2OGMwM2RiN2JhNjMwYzdhZWEy
YTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3Ry
aW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21T
dHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFs
IHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsg
IlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1Zp
ZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9
OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGMyNTMzODJkMzRhMTc4MzI2
YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2NjY2ZmM5ZjljNDA5YTNjZTBj
ZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcu
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5
VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0
eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFj
dGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9z
KTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVy
cyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxs
VmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxs
KQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0
aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hh
cmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hh
cmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5p
c0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVy
YXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6
OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7
CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsK
ICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0g
aGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcp
OwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VR
KCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7
CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2lu
dHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwogICAgIGNvZGVQb2ludHNJdGVy
YXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRv
cjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0Fs
bEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5p
c0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIp
KS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+T
sSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi
XHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJp
bmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3
KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJp
bmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVY
UEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxs
QVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0
PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFhZmE0MTMxODI0ZTNkOGRhMzg4
Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAg
VEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFyKQogICAgIEVYUEVDVF9UUlVF
KGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJsLnByb3RvY29sKCkgPT0gImh0
dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iKSwga3Vy
bC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUu
Y29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoISFrdXJs
LnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9ydCgpLnZhbHVlKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNlcigpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3
b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXgu
aHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1s
Il9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2
YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdt
ZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJs
LmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCJf
cyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVS
TChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyArODAsNDMgQEAgc3RhdGljIFVS
TCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQogVEVTVF9GKFdURl9VUkwsIFVS
TFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOkB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5o
dG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJu
YW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
ImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmls
ZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9h
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1l
OnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFz
ZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcg
KzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7
CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVS
TCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7
eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIpLCB0ZXN0VmVjdG9yMTIpOwog
ICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAgIAogICAgIFVSTCB1cmw1ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJM
IHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHt7ImtleTEiLCAi
dmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0b3I1Nik7CiAgICAgCiAgICAg
VVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZr
ZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5
MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwy
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1
cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTYgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYge3sia2V5MSIs
ICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsKICAgICAKICAgICBVUkwgdXJs
MTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFs
MSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZh
bDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTEsIHVybDEyKSwg
dGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTgg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7
eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwg
eyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcsIHVybDE4KSwgdGVzdFZlY3Rv
cjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDIw
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAg
e3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXky
IiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5MSJfcywgIiJfcyB9LCB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAg
CiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz8iX3Mp
OwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8vP3Rl
c3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0
Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsKICAgICAK
ICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PXRlc3Qi
X3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89
PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIi
X3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAKICAgICBVUkwgdXJsMjcgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJsMjggPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVz
dCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/
Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAgICBVUkwgdXJsMjkgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDMwID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIs
ICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyOSwgdXJsMzApLCB0ZXN0VmVj
dG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMxLCB1cmwzMiksIHRlc3RWZWN0
b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNSwgdXJsMjYpLCB0ZXN0VmVj
dG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCmlu
ZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQzNTU1NjMuLmEyMmViMjNjY2Jm
NzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFw
TGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBT
dHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAi
djIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOwor
ICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3Mp
OworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6
Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3Ry
aW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQ1MDI3MGYyMWY2NWExMGZj
YmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1MWM1NWRlYjdkMjM2YjFkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEz
ICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBF
Q1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21M
aXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3Ry
dWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9U
UlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxW
aWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5
bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmlu
Z0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxl
bigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVY
UEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChX
VEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRz
V2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBl
bXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxs
byJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRo
KG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFy
dHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmlu
Z051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJp
bmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0g
U3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQg
PT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVT
VChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRF
U1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9r
KSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcyku
dG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQg
aWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcganVuaywgYnV0IHJldHVybiBm
YWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0
aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAw
IGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJf
cykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3Vi
bGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVt
YmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmluaXR5IgotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMg
Im5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwog
fQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogewotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
VGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3Mp
LmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEz
ICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIp
LCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhT
dGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3Mp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBU
RVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1w
bGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3Mp
OwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uo
c3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsK
QEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNU
KFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
MSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwog
ICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5
NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3MTIzNGMzYzIwY2YxNDVmZTU2
NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTE3OTIsNyArMTc5Miw3IEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1cmVzKQogICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJz
ZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFyIG5vbkFTQ0lJWzJdID0gey0x
LCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcgeyBub25BU0NJSSB9LCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwor
ICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSSksIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIAogICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFjOGVkNDdlYTRiYzZlMmY0MjI4
NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4MjhhMDAwZWMyYzQyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
QEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJU
aGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3Ig
dGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEg
dGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYyOTViODJjZGIwNTI3OTQzMTEy
Mjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBkZmQ3MDdmYzI3NWVhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxk
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZp
ZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQog
ICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAg
ICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVu
dCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAg
ICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSB9LAorICAgICAgICBTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxh
dGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91
bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFy
c2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6IFwiXGFcIiJfcywKICAgICAg
ICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9
LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAg
CiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUxZDNlNjQwYzdjY2NkZTYyOTQz
ZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdjYTBlOTEzYzI5MTA4MzcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNw
cApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldERvdWJsZSkK
IAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQogewotICAgIEVYUEVDVF9UUlVF
KHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZX
ZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiKSkpOwor
ICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjpl
bmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5n
KCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2RpbmcsIEdldE5vbkV4aXN0aW5nUmVj
b3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1ZDU0OTVlMzljMWNkOTRkLi4w
YWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMw
ICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNc
dTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJl
eGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNv
bSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFv
NjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50
ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0
LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
d3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3
LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIx
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBF
WFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJp
ZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJs
b2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOW
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOE
w5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODdjZGZh
OWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0Y2U5MjU1ZTI0NDhiYTc3MzEw
NTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBN
YW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRD
b3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwg
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50
Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNv
cmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0g
U3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJv
bUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21M
YXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3Jk
LCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNjMmFhODc0OGFkZDUxNS4uMWIx
ZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJl
ZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2luZ0ZpbGUpCiB7Ci0gICAgYXV0
byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmco
Im5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcykpOwog
ICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgVEVTVF9GKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRmls
ZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZG
aWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYnVmZmVyKTsKICAgICBF
WFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoRnJhZ21lbnRlZFNo
YXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1
b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmc6
OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0
cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsK
IH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVu
dHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAppbmRleCBkYzRlMTI4
MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3ZjRmZDRiNTUyMjg3NDNkM2Uy
ZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEz
OSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQog
ewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIp
LCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4
RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5
RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAg
IFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRl
eHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFj
ZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2Vz
Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAg
IGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJf
cywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1
MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVu
Y29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNv
ZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0
ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVja1VSTCht
YWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3
cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJf
cywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRo
PyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczov
L2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAl
QjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIw
JUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRj
ZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAuLjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVk
MjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5
OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJv
dGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0
aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwg
ZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJl
IHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2Us
IHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRh
YmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMg
dGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyAr
MjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFu
ZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNo
b3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
VGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vz
bid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0
YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2
ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMwNmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWVi
ZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJl
Zj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhB
eWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJM
a1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2
OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBG
bTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhn
T3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNv
ZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Fo
a2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRh
aW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICI0Nml6aG91M0dTS3oz
WDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAg
ICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0
b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJP
aVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3Yx
dDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0
byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwog
ICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlm
aWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEw
ZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlhNTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWdu
VW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25p
bmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1
ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVx
dWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0
cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5s
aW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Vu
bGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2Vu
Il9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3Ro
KCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJl
cXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsK
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAg
LTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNv
ZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZl
Y3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0g
cmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4
ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgwMDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5
MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyAr
NzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdB
d2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMg
fTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owot
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0
U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNv
dXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRp
b25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1l
T3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0
U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VI
ZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291
cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChz
b3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVk
ZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAg
aWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAg
ICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywg
U3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAg
IEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFk
ZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6
ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6
OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tX
S1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklz
b2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIp
ICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0g
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVz
dGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7
CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09Q
ID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7Cisg
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJl
LWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3
YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4
MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29u
c3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVz
dGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNz
aW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsK
ICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2
ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVj
dCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNu
J3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlz
SklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4
IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJiYTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRj
NzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0y
MTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAg
ICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIo
W10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWlu
Qnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5C
eXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNl
aXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxp
emUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNw
b25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9
LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rv
cjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dl
ZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJf
cykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4
IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJlNTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJk
MWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUg
aWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0
IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAi
PGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwv
aHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8
aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5
LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0
bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVl
YTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWVi
N2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVT
VChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNv
cHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwg
VVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwg
YWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJr
aXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4
dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4
NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzViMGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3
NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFu
Y2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxl
Y3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4
dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBT
dHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQy
N2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2FlY2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNl
YTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3
ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVY
UEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2
ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0
OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBlZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1
MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFu
ZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAg
ICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAg
ICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29u
bmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2Nl
cHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdy
YWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAi
VXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdl
YlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBS
ZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBI
VFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQ
aFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRV
emQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdh
IgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9v
Q01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7Cisg
ICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVj
b2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAg
ICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcg
QEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtV
YmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRV
RGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJT
MUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZa
ZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3
WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3
PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4
OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4
M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5j
cHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyAr
NTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3Vt
bWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBT
dHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9
IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsK
KyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVt
cHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJp
dFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBs
ID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYx
NlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457142</attachid>
            <date>2022-04-08 20:45:14 -0700</date>
            <delta_ts>2022-04-08 22:25:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408204513.patch</filename>
            <type>text/plain</type>
            <size>188330</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLjJkYzY0NTViNDQyNDMzMjE5
ZDEzZjk3YjYyNzdjODA3MjVmNTY3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCmluZGV4
IGI5MTExMDI1OTgzNTg5MGQ2NTEzZmEwMzNjMzJmOTUxZTdlZmRiZDkuLmVkYWUxMjkyZjE4OTNl
ZGQ4NDIyNDRiZmE3ZmZjNDU2MGQwOThmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXh0ZW5zaW9uc0dMT3BlbkdMRVM6OnBsYXRm
b3JtU3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogCiBTdHJpbmcgRXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMoKQogewotICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkp
OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYTZh
ODhjZjFhZDRjODRkMTAwMTQ0ZDM1OTc1OWI5NWFlN2IyM2JmLi44ZjU0NjZhNWEzZTdiZTllYzZh
YzAyOTU5YWZmZGU0OTg1YjA2ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5jcHAKQEAgLTEzNDYsNyArMTM0Niw3IEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Z2V0U3RyaW5nKEdDR0xlbnVtIG5hbWUpCiAgICAgaWYgKCFtYWtlQ29udGV4dEN1cnJlbnQo
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKG5hbWUpKSk7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKG5hbWUpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmhpbnQo
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAppbmRleCA2NmRiZWM0MGFhYzJiNzM5N2ExOTMzMTE2
NmM3MmJkNjI2MTZlMDZlLi4yODY1YjhiOGFhNDQxYzM1OWUyYTQ2YTM0YWU2OWVkN2U3Nzk3YjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkKICNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgICAgICBhdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlhbnQgPSB0cnVlOwogCi0gICAgICAgIFN0
cmluZyBleHRlbnNpb25zU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uc1N0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0
cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRl
eHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfT0VTX3RleHR1cmVfbnBvdCIp
OwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSBleHRlbnNpb25z
U3RyaW5nLmNvbnRhaW5zKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIik7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKaW5kZXggYzdhMWMyNzI1ZDNkMmUyZWY5YmU5
NzNkOWNmYzhjZmFiOThiODhkZi4uOTA2ZjliNDNjMGU3ZTcyZTFkMmQ2ZjZhMWQ3OTNkOThjMTEw
ZTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjpUZXh0dXJlTWFwcGVyRlBTQ291bnRlcigp
CiAgICAgLCBtX2xhc3RGUFMoMCkKICAgICAsIG1fZnJhbWVDb3VudCgwKQogewotICAgIFN0cmlu
ZyBzaG93RlBTRW52aXJvbm1lbnQgeyBnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpIH07CisgICAg
YXV0byBzaG93RlBTRW52aXJvbm1lbnQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52KCJXRUJL
SVRfU0hPV19GUFMiKSk7CiAgICAgYm9vbCBvayA9IGZhbHNlOwogICAgIG1fZnBzSW50ZXJ2YWwg
PSBTZWNvbmRzKHNob3dGUFNFbnZpcm9ubWVudC50b0RvdWJsZSgmb2spKTsKICAgICBpZiAob2sg
JiYgbV9mcHNJbnRlcnZhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAppbmRleCA5NTNkZjM3OGVjNWYxYmY2YTBmYWRkOWQ5YWJiMTk3YzhmMDBh
MDFmLi42OGNiMTUwNmExMGVhMmUxYWRkMGJiZGQwZjZkZjUzMDRlMjYxZmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtMTE2LDcgKzEx
Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgbWltZVR5cGVDYWNoZSgpCiAgICAgaWYgKGNhY2hlZFR5cGVzLmdldCgpLnNpemUoKSA+
IDApCiAgICAgICAgIHJldHVybiBjYWNoZWRUeXBlczsKIAotICAgIGNhY2hlZFR5cGVzLmdldCgp
LmFkZChTdHJpbmcoInZpZGVvL21wNCIpKTsKKyAgICBjYWNoZWRUeXBlcy5nZXQoKS5hZGQoInZp
ZGVvL21wNCJfcyk7CiAKICAgICBQUk9QVkFSSUFOVCBwcm9wVmFyTWltZVR5cGVBcnJheTsKICAg
ICBQcm9wVmFyaWFudEluaXQoJnByb3BWYXJNaW1lVHlwZUFycmF5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAK
aW5kZXggYzAxN2YyMWZiZDg0ZjJiODQyZTAxZjI0OGNjNDQwNzIzY2IxYWFiOC4uZGQ1ZmI4NjM0
Mjc3YmFlYTkyYmU2ZWNhZjZkMmZiYzdjZTdlZTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEz
MDAsMTEgKzEzMDAsMTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIEdES19LRVlfSVNPX0VudGVyOgog
ICAgIGNhc2UgR0RLX0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIEdES19LRVlfUmV0dXJuOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7
CiAgICAgY2FzZSBHREtfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBHREtfS0VZX1Rh
YjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGd1bmljaGFyIGMgPSBnZGtfa2V5dmFsX3Rv
X3VuaWNvZGUodmFsKTsKICAgICAgICAgZ2xvbmcgbndjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BF
LmNwcAppbmRleCA4NDMyMzFkM2I1OGEwMmZkOWQ5M2QzYTM3Yjg2OTk3YmU1NmQwZjMwLi5hNzI0
ZjEyNmY4ZjM4OWQ0NmJhNWMxYTk0MWVlZjc2ZmRjNTljOTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50TGliV1BFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
TGliV1BFLmNwcApAQCAtMTI5NywxMSArMTI5NywxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgV1BF
X0tFWV9JU09fRW50ZXI6CiAgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgV1BF
X0tFWV9SZXR1cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVy
biBTdHJpbmcoIlxyIl9zKTsKICAgICBjYXNlIFdQRV9LRVlfQmFja1NwYWNlOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAg
ICBjYXNlIFdQRV9LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKaW5kZXggMjU3NjZkOTc1ZjI0ODQzMDM4YTc2MGU3MjY5ZTg0ZWMxNDEzNjFhOC4u
NTk1NzM5NTUyMzExYmQzZDFiZDQwMTJhZTVjYTA4NjliY2RmZTdhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgdm9pZCBHU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlcjo6YWRkRGV2aWNl
KEdSZWZQdHI8R3N0RGV2aWNlPiYmIGRldmljZSkKIAogICAgIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSA9IGRldmljZVR5cGUoKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldmljZUNs
YXNzQ2hhcihnc3RfZGV2aWNlX2dldF9kZXZpY2VfY2xhc3MoZGV2aWNlLmdldCgpKSk7Ci0gICAg
U3RyaW5nIGRldmljZUNsYXNzKFN0cmluZyhkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpKTsKKyAgICBh
dXRvIGRldmljZUNsYXNzID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRldmljZUNsYXNzQ2hhci5nZXQo
KSk7CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSAmJiAhZGV2aWNlQ2xhc3Muc3RhcnRzV2l0aCgiQXVkaW8iKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiAhZGV2
aWNlQ2xhc3Muc3RhcnRzV2l0aCgiVmlkZW8iKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKaW5kZXggNDFj
OGE0ODMwMzg0NmQ0ZGJhZTNiMzk3ODQ2YjUyOTcyZTZhMDIwOS4uYzJlODY5N2FmZGI2ZmRkODRk
NjJhMTNhZGI2ZTliZjk3YTZkZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVMKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5n
ZXQoKSwgIihvKSIsICZvYmplY3RQYXRoLm91dFB0cigpKTsKICAgICB3YWl0UmVzcG9uc2VTaWdu
YWwob2JqZWN0UGF0aC5nZXQoKSk7CiAKLSAgICBTdHJpbmcgcmVxdWVzdFBhdGgob2JqZWN0UGF0
aC5nZXQoKSk7CisgICAgYXV0byByZXF1ZXN0UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShvYmpl
Y3RQYXRoLmdldCgpKTsKICAgICBhdXRvIHNlc3Npb25QYXRoID0gcmVxdWVzdFBhdGgucmVwbGFj
ZSgiL3JlcXVlc3QvIiwgIi9zZXNzaW9uLyIpLnJlcGxhY2UodG9rZW4sIHNlc3Npb25Ub2tlbik7
CiAKICAgICAvLyBGSVhNRTogTWF5YmUgY2hlY2sgdGhpcyBkZXBlbmRpbmcgb24gZGV2aWNlLnR5
cGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
ZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1
ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1
YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmlj
YXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBD
ZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3Zlcmlm
aWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJp
ZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZp
Y2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkw
ZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4
Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxl
Ojp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0
aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9z
dHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxf
ZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVT
U0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1
cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5
dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAg
ICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAg
ICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShp
cCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhl
bHBlci5jcHAKaW5kZXggZDM5YjY1YjQ0MGU4ZjJiYjE5NTRlNmM2MGEzZTg5MjNiM2Y0NmFiNi4u
ZDNlZTA3YzFlYTIyY2VhMTc4ZjE3YzBlZGIzNTMwMmY2MTBlYzFmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcApA
QCAtMzQwLDEyICszNDAsMTIgQEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZVN1
bW1hcnk+IGNyZWF0ZVN1bW1hcnlJbmZvKGNvbnN0IFZlY3Rvcjx1aW50OF8KIAogU3RyaW5nIHRs
c1ZlcnNpb24oY29uc3QgU1NMKiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9nZXRf
dmVyc2lvbihzc2wpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfZ2V0X3Zl
cnNpb24oc3NsKSk7CiB9CiAKIFN0cmluZyB0bHNDaXBoZXJOYW1lKGNvbnN0IFNTTCogc3NsKQog
ewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVu
dF9jaXBoZXIoc3NsKSkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9DSVBI
RVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50X2NpcGhlcihzc2wpKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZm
aXhDdXJsLmNwcAppbmRleCBlZjg5NjIyNGZhMDdhYTVmZGExZmE4MmE4YmNjZjFmNmFkNzczMDU3
Li5kMmRlMGRkMWU5ZGZjMTA1ZTJjNzdjZGU5ZTcxYTFiYjQ3MTgzMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBTdHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbkludGVybmFsKGNvbnN0IHBzbF9jdHhfdCogcHNsLCBjb25zdCBjCiB7CiAgICAg
Ly8gcHNsX3JlZ2lzdGVyYWJsZV9kb21haW4gcmV0dXJucyBhIHBvaW50ZXIgdG8gZG9tYWluJ3Mg
ZGF0YSBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHByaXZhdGUgZG9tYWluCiAgICAgaWYgKGNvbnN0
IGNoYXIqIHRvcFByaXZhdGVEb21haW4gPSBwc2xfcmVnaXN0cmFibGVfZG9tYWluKHBzbCwgZG9t
YWluKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZyB7IHRvcFByaXZhdGVEb21haW4gfTsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSh0b3BQcml2YXRlRG9tYWluKTsKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
aW5kZXggNTcyMGUyNGRmOGEwMGFmZTdhOWIxOGQwNGIyMDI0NGU1OTExYzFjZi4uNzE3ZWJkZDFi
YzYwOWE3MTNhZjEzZDU1YTA2ZTBiYjAwMTYyMDUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50Q3VybC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVzb3VyY2VFcnJvciBTeW5jaHJv
bm91c0xvYWRlckNsaWVudDo6cGxhdGZvcm1CYWRSZXNwb25zZUVycm9yKCkKIHsKICAgICBpbnQg
ZXJyb3JDb2RlID0gMDsKICAgICBVUkwgZmFpbGluZ1VSTDsKLSAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiKTsKKyAgICBTdHJpbmcgbG9jYWxpemVk
RGVzY3JpcHRpb24oIkJhZCBTZXJ2ZXIgUmVzcG9uc2UiX3MpOwogCiAgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoIkNVUkwiX3MsIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3Jp
cHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGE4ZDIz
NzA2NDhkMjQ2ODgxMmNlNWI2Zjk1MzlhYWIwOTYyZTg2YmMuLjZlMGEzZGM3YWM1YWRmMjJmNTUz
ZjgxMTEzNjMzYTEzNWFlOTI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzQ29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aQogICAgIEdVbmlx
dWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9hbGxfY29va2llcyhjb29raWVT
dG9yYWdlKCkpKTsKICAgICBmb3IgKGF1dG8qIGl0ZW0gPSBjb29raWVzLmdldCgpOyBpdGVtOyBp
dGVtID0gZ19zbGlzdF9uZXh0KGl0ZW0pKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8U291cENvb2tp
ZT4gY29va2llKHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVtLT5kYXRhKSk7Ci0gICAgICAg
IGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5nIHsg
c291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkpIH0pID09IGRvbWFpbikgeworICAg
ICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0cmlu
Zzo6ZnJvbUxhdGluMShzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkpKSA9PSBk
b21haW4pIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAppbmRleCAzNGE1N2U1YzJj
MmViNjk4OTdhNTczYWU0MDMyYjIzMWI5OTkzYzFkLi5mN2YxNmY5Y2MxNWZhNzFkZWE4YTkwMzMy
YjFkMWRmMGQzMDE3ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OnRyYW5z
cG9ydEVycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgaW50IHN0YXR1c0NvZGUsIGNvbnN0IFN0
cmluZyYgcmVhc29uUGhyYXNlKQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7
IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9ET01BSU4pIH0sIHN0YXR1c0NvZGUs
IGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3Ry
aW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9ET01BSU4p
KSwgc3RhdHVzQ29kZSwgZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKIH0KIAogUmVzb3VyY2VF
cnJvciBSZXNvdXJjZUVycm9yOjpodHRwRXJyb3IoU291cE1lc3NhZ2UqIG1lc3NhZ2UsIEdFcnJv
ciogZXJyb3IpCkBAIC02NCwxOSArNjQsMTkgQEAgUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjphdXRoZW50aWNhdGlvbkVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9E
T01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvY29jb2EvTG9jYWxlQ29jb2EubW0KaW5kZXggZTYxODFmNDY0Nzg1NTQyNTliNjAyZWM4NDRj
N2Q1NTVlMjBkY2I3Yy4uM2U1NjM1Yzc0NWYyNDBmNmY1NDA3NGIzZDUxNGRkZjU2ZDcwMzgwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCkBAIC0yMDcsNyArMjA3LDcgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUNvY29h
OjpzaG9ydE1vbnRoTGFiZWxzKCkKICAgICB9CiAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnJlc2Vy
dmVDYXBhY2l0eSgxMik7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogV1RGOjptb250aE5hbWUpCi0g
ICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKG5hbWUpKTsKKyAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChu
YW1lKTsKICAgICByZXR1cm4gbV9zaG9ydE1vbnRoTGFiZWxzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCBhNDRlNDM2YjY1ZWMz
MzRmZTc0ODhhZDNkZDdjZWNjODlhN2I0MDRmLi5lOWQxODI4OWQ5NmExNGQ1ZTIxYWNmMWEzYWIx
ZWJiM2IyNWM2MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xv
Y2FsZVdpbi5jcHAKQEAgLTM5OCwxNiArMzk4LDE2IEBAIHZvaWQgTG9jYWxlV2luOjppbml0aWFs
aXplTG9jYWxlRGF0YSgpCiAgICAgRFdPUkQgZGlnaXRTdWJzdGl0dXRpb24gPSBEaWdpdFN1YnN0
aXR1dGlvbjB0bzk7CiAgICAgZ2V0TG9jYWxlSW5mbyhMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9O
LCBkaWdpdFN1YnN0aXR1dGlvbik7CiAgICAgaWYgKGRpZ2l0U3Vic3RpdHV0aW9uID09IERpZ2l0
U3Vic3RpdHV0aW9uMHRvOSkgewotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMCIpOwotICAgICAg
ICBzeW1ib2xzLmFwcGVuZCgiMSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiIpOwotICAg
ICAgICBzeW1ib2xzLmFwcGVuZCgiMyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCIpOwot
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiIp
OwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgi
OCIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOSIpOworICAgICAgICBzeW1ib2xzLmFwcGVu
ZCgiMCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIxIl9zKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjIiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMyJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCI0Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiOSJfcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIGRpZ2l0cyA9IGdldExv
Y2FsZUluZm9TdHJpbmcoTE9DQUxFX1NOQVRJVkVESUdJVFMpOwogICAgICAgICBBU1NFUlQoZGln
aXRzLmxlbmd0aCgpID49IDEwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZj
Yzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYw
ZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0
aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZp
bGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9y
bWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAg
ICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAg
ICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRp
dW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0
YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBm
aWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRh
dGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0gVVJMOjpm
aWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsK
KyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3Ry
aW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAgICAgICAg
IGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAgICAgICAg
ICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3Qq
IGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0
YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAog
ICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUu
aEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEds
b2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpA
QCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFN
YXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCog
ZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBw
cmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWdu
ZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwog
ICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4
YmNmZjhkNTZkLi40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAs
NyArODQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQsIFBsYWluVGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2Fy
ZEZvcm1hdEF2YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsK
ICAgICAgICAgaWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkp
IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBM
YXRpbi0xLCBub3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJp
Z2h0IGVuY29kaW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nh
c3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9
IFN0cmluZzo6ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEp
KSk7CiAgICAgICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xv
c2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0
Q2xpcGJvYXJkRGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAg
ICAgICAgICAgICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhj
YkRhdGEpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAg
ICAgICAgYXV0byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAg
ICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29u
dGV4dCwgc3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xL
ZXlHZW5lcmF0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdl
bmVyYXRvcldpbi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRh
NzE5NS4uMjJlNzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAg
LTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlT
aXplcyhWZWN0b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQg
YmUgbG9jYWxpemFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVu
ZCgiSGlnaCBHcmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBV
UkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0
aWxzLmgKaW5kZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNhYTlkMi4uMzEz
YzMyYTkzNmQ5MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcgKzYwLDcgQEAg
aW5saW5lIFN0cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBp
bnN0YW5jZSkKICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKICAg
ICBYclJlc3VsdCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVm
ZmVyKTsKICAgICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwog
ICAgIHJldHVybiBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRy
aXZlci9TZXNzaW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2Ix
ZjBlZTVjLi5iOTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIv
U2Vzc2lvbi5jcHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBT
ZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2Fw
YWJpbGl0aWVzKCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9h
ZFN0cmF0ZWd5OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAg
IHJldHVybiBTdHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9y
bWFsOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0
cmluZygiTm9ybWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdl
ciJfcyk7CiAgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dl
YkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQx
MGE1OWJlYzIuLjg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2Vi
RHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVD
VE9SX1NPQ0tFVF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29u
c3QgY2hhciogdGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkK
LSAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlm
CiAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNo
YXIqIGFyZyA9IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZp
Y2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2Fn
ZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3Zb
aV0gfTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltp
XSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAg
IGlmICghc3RybmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmlu
Zy5pc051bGwoKSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0
U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEo
YXJnICsgcG9ydFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCIt
LWhvc3Q9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxl
bmd0aCkgJiYgIWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0
ckxlbmd0aCk7CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhv
c3RTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcs
MTMgKzk3LDEzIEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0
ckxlbmd0aCA9IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcs
ICItLXRhcmdldD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkg
ewotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0
aCk7CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsg
dGFyZ2V0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5k
aWYKQEAgLTU2Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9u
T3JDb21wbGV0ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAo
IW1fc2Vzc2lvbi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRy
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0
ZWQgYmVjYXVzZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBj
cmFzaCBvciBoYW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAt
NzE0LDE0ICs3MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4x
LiBJZiByZXF1aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRv
IGFuIGVtcHR5IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpT
T046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0
aWVzID0gcmVxdWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGlu
IGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0
aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRo
IGFyZ3VtZW50IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGll
cyA9IHZhbGlkYXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlm
ICghcmVxdWlyZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVu
dCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBh
YmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyAr
NzM2LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0Nh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFi
aWxpdGllc0xpc3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAg
ICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8g
My4yLiBJZiBhbGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwg
cmV0dXJuIGVycm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQg
aW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQs
IFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwx
MyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8g
Zmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQo
aSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFi
aWxpdGllcyBmb3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZh
bGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RN
YXRjaCJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAg
Ly8gNS4xLiBMZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWlu
ZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBh
YmlsaXRpZXMuCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBh
YmlsaXRpZXMoKmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0
cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5
MSw3ICs3OTEsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9j
ZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmICht
YXRjaGVkQ2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Np
b25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNo
IGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgw
Myw3ICs4MDMsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpT
T046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBT
ZXNzaW9uLgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNz
aW9uCiAgICAgaWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0
ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFj
dGl2ZSBzZXNzaW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcg
KzgxOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OmNvbm5lY3RUb0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmIChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIp
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8g
bWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0x
OTAxLDcgKzE5MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2Jq
ZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJh
dGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24p
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlv
bicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rp
b24iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMs
NyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlv
bkl0ZW0uZ2V0U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4g
bnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxp
ZCBvciBtaXNzaW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTE5MzUsNyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBp
ZiAoc3VidHlwZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246
OlN1YnR5cGU6OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVl
KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3Zh
bHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9y
IGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAg
ICAgICAgIGlmIChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBh
Y3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRl
ciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBj
aGVjayBzaW5nbGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3Rh
dGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRl
bSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlv
bicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVy
YXRpb24gPSBkdXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJv
b2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0
aW9uJiBhY3Rpb24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFs
dWUtPmFzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2Jq
ZWN0LT5nZXRTdHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAg
ICAgICBpZiAoIWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBv
YmplY3QgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVj
dCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRl
ck9yaWdpbjo6VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBA
QCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09
ICJwb2ludGVyIikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdp
biB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFs
aWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykp
IHsKICAgICAgICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01J
Tik7CiAgICAgICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3Ig
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAg
ICBhY3Rpb24ueCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgi
eSJfcykpIHsKICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwg
SU5UX01JTik7CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxp
ZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5n
JiBpZCwgUG9pbnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNl
bCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5j
ZWw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9u
IGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMjA3NCwxMiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nl
c3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2Ug
QWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVl
ID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25W
YWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdidXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBt
aXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25l
ZFZhbHVlKCpidXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxp
ZCBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIg
dXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgfQogICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9u
LnZhbHVlKCkpOwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0
aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0Jgog
ICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUg
PSBBY3Rpb246OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52
YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVl
KCJkZWx0YVgiX3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJ
blJhbmdlKCpkZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkg
ewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAn
ZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEz
Niw3ICsyMTM2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBk
ZWx0YVlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAg
ICAgIGF1dG8gZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRf
TUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFj
dGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
YXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24u
ZGVsdGFZID0gZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpT
T046Ok9iamVjdCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRh
VmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMg
aXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlv
biBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJh
bWV0ZXJzKEpTT046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3Vj
aCIpCiAgICAgICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMg
aW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGlu
dmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5
MCw3ICsyMTkwLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nl
c3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlv
blNlcXVlbmNlID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0
aW9uU2VxdWVuY2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9u
IHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVu
Y2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAg
ICBpbnB1dFNvdXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBp
bnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5n
IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCiAgICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsK
ICAgICBpZiAoIWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxp
ZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9u
JiBzZXNzaW9uCiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJ
bnB1dFNvdXJjZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlu
cHV0U291cmNlLnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3Vy
Y2UgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJ
bnB1dFNvdXJjZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBw
b2ludGVyVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1
ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50
ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMg
PSBhY3Rpb25TZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
SXRlbXMpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdh
Y3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlz
IGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0
ZW1zTGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMt
PmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2Ug
aXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJB
biBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBw
YXJhbWV0ZXJzLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZh
bGlkIG9yIG5vdCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1Nv
dXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQx
YmE3ZmQyOWViYmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3
MDE2ZjFlNTYxZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRy
aXZlclNlcnZpY2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNl
cnZpY2VHdGsuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxh
dGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFi
aWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsx
MTAsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNv
bnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2Fw
YWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0i
IFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBh
YmlsaXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlv
biJfcyB9OwogICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3Bw
IGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2
NzEyZjJmMTM1ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3
MWY2MzY1ODJhZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4v
V2ViRHJpdmVyU2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJp
dmVyU2VydmljZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
Q2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9X
ZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEy
YTAwNWZhYzA5MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVl
NmQyZWIyMDQwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNl
cnZpY2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VX
UEUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1J
bml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGll
cygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVj
dCA9IGZhbHNlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcg
QEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBT
dHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxp
dGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0
aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0
aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmls
aXRpZXMuYnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJf
cyB9OwogCiAgICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0
T2JqZWN0KCJ3cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDFm
MGI3ZTRlOTllY2QzMGQ4NWViNjU2Mjg4YjU2M2Q0MjM5MGNkNzguLjMwOWRhYzA3OWRkMjg3Yjg0
MWE4MjAxNzNiNTc0Yzc1OGU1MDlmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTkzMSw3ICs5
MzEsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9u
KCkKICNpZiBVU0UoU09VUDIpCiAgICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6dHJhbnNw
b3J0RXJyb3IobV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU09VUF9TVEFUVVNfVE9PX01BTllfUkVE
SVJFQ1RTLCAiVG9vIG1hbnkgcmVkaXJlY3RzIl9zKSk7CiAjZWxzZQotICAgICAgICBkaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VS
Uk9SKSB9LCBTT1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJFQ1RTLCBtX2N1cnJlbnRS
ZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSByZWRpcmVjdHMiKSkpOwor
ICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtf
dG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBTT1VQX1NFU1NJT05fRVJST1JfVE9PX01B
TllfUkVESVJFQ1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KCJU
b28gbWFueSByZWRpcmVjdHMiKSkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMDM3LDcgKzEwMzcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlYWRDYWxsYmFj
ayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqCiAgICAgICAgIGlmICh0
YXNrLT5tX3NvdXBNZXNzYWdlKQogICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVy
cm9yOjpnZW5lcmljR0Vycm9yKHRhc2stPm1fY3VycmVudFJlcXVlc3QudXJsKCksIGVycm9yLmdl
dCgpKSk7CiAgICAgICAgIGVsc2UgaWYgKHRhc2stPm1fZmlsZSkKLSAgICAgICAgICAgIHRhc2st
PmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmlu
Zzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJp
bmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0gZWxzZSBpZiAoYnl0ZXNSZWFk
ID4gMCkKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlk
UmVxdWVzdE5leHRQYXJ0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmIGlucHV0U3RyZWFtCiAgICAg
QVNTRVJUKCFtX2lucHV0U3RyZWFtKTsKICAgICBtX2lucHV0U3RyZWFtID0gV1RGTW92ZShpbnB1
dFN0cmVhbSk7CiAgICAgYXV0byogaGVhZGVycyA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVh
bV9nZXRfaGVhZGVycyhtX211bHRpcGFydElucHV0U3RyZWFtLmdldCgpKTsKLSAgICBTdHJpbmcg
Y29udGVudFR5cGUgeyBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250
ZW50LVR5cGUiKSB9OworICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEo
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwog
ICAgIG1fcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKG1fZmlyc3RSZXF1ZXN0LnVybCgpLCBl
eHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgc291cF9t
ZXNzYWdlX2hlYWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpLCBleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgIG1fcmVzcG9uc2Uu
dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhoZWFkZXJzKTsKQEAgLTEyNDksNyArMTI0OSw3
IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAgICAgICAgIGNv
bnN0IGNoYXIqIGhlYWRlck5hbWU7CiAgICAgICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwog
ICAgICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRl
ciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgICAgICByZXF1ZXN0SGVhZGVy
cy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKKyAgICAgICAg
ICAgIHJlcXVlc3RIZWFkZXJzLnNldChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0
cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogICAgICAgICBhZGRpdGlvbmFsTWV0cmlj
cy5yZXF1ZXN0SGVhZGVycyA9IFdURk1vdmUocmVxdWVzdEhlYWRlcnMpOwogCiAgICAgICAgIGFk
ZGl0aW9uYWxNZXRyaWNzLnByaW9yaXR5ID0gdG9OZXR3b3JrTG9hZFByaW9yaXR5KHNvdXBfbWVz
c2FnZV9nZXRfcHJpb3JpdHkobV9zb3VwTWVzc2FnZS5nZXQoKSkpOwpAQCAtMTY5MSw3ICsxNjkx
LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRGaWxlSW5mbyhHRmlsZUluZm8q
IGluZm8pCiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoInRleHQvaHRtbCJfcyk7CiAg
ICAgICAgIG1fcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKC0xKTsKICAgICB9IGVs
c2UgewotICAgICAgICBTdHJpbmcgY29udGVudFR5cGUgeyBnX2ZpbGVfaW5mb19nZXRfY29udGVu
dF90eXBlKGluZm8pIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShpbmZvKSk7CiAgICAgICAgIG1fcmVz
cG9uc2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlw
ZSkpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJz
ZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgaWYgKG1f
cmVzcG9uc2UubWltZVR5cGUoKS5pc0VtcHR5KCkpCkBAIC0xNzE5LDcgKzE3MTksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlYWRGaWxlQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3lu
Y1Jlc3VsdCogcmVzdWx0LCBOZQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAg
ICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19JTlBVVF9T
VFJFQU0oZ19maWxlX3JlYWRfZmluaXNoKGZpbGUsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSkp
OwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0
YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2Fn
ZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNr
LT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkp
KTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKFdURk1vdmUoaW5wdXRTdHJl
YW0pKTsKIH0KQEAgLTE3NDMsNyArMTc0Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6
ZW51bWVyYXRlRmlsZUNoaWxkcmVuQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsCiAg
ICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQdHI8R0ZpbGVFbnVtZXJh
dG9yPiBlbnVtZXJhdG9yID0gYWRvcHRHUmVmKGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fZmlu
aXNoKGZpbGUsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKQotICAg
ICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVy
bCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICB0YXNrLT5k
aWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5n
KGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAg
dGFzay0+ZGlkUmVhZEZpbGUod2Via2l0RGlyZWN0b3J5SW5wdXRTdHJlYW1OZXcoV1RGTW92ZShl
bnVtZXJhdG9yKSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNv
Y2tldFRhc2tTb3VwLmNwcAppbmRleCA5N2YwOTg1NGNmNWUzZTI4ZmUwMmViY2Y5MjIxYjM1ZGIy
ZTA5YWI2Li42ZWVjMzcyZmNmNTU2MjFkNDUzNTgyMjQwNWQ0NmMwNGUzYWYwMjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENvbm5l
Y3QoR1JlZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIGdf
c2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJlcnJvciIsIHJlaW50
ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRSZWNlaXZlRXJyb3JDYWxsYmFjayksIHRoaXMpOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJjbG9zZWQi
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayksIHRoaXMpOwog
Ci0gICAgbV9jaGFubmVsLmRpZENvbm5lY3QoU3RyaW5nIHsgc291cF93ZWJzb2NrZXRfY29ubmVj
dGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSB9LCBhY2NlcHRlZEV4dGVuc2lv
bnMoKSk7CisgICAgbV9jaGFubmVsLmRpZENvbm5lY3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBf
d2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkpLCBh
Y2NlcHRlZEV4dGVuc2lvbnMoKSk7CiAKICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZUhhbmRzaGFr
ZVJlc3BvbnNlKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSk7CiAgICAgZ19zaWduYWxfaGFuZGxl
cnNfZGlzY29ubmVjdF9ieV9kYXRhKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSwgdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcAppbmRleCBh
MjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0Li4zNWMyODk3YWM4ODczYjE3
NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYsNyBAQCBIUkVTVUxUIEFjY2Vz
c2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZzZXQsIGxvbmcgZW5kT2Zmc2V0
LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpnZXRf
YXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdURjo6U3RyaW5nIHRleHQoInRl
eHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1vZGVsOmExIl9zKTsK
ICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFzZSgpOwogICAgIHJldHVybiBT
X09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3ZjUyMWRhMGZkYTI0
YTU3NDA2ODBhMjQzNzliODJjYjI0MDM0MzM4Li43NzI0ZmIwMDJhMWFhMjgwMzZiMmYwZmIyY2Qw
NGQ2MjFiMzUxZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMjE0Nyw3
ICsyMTQ3LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRp
dG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpIH0pOworICAg
IGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZzo6ZnJvbUxhdGlu
MShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBpZiAoa2V5RXZlbnQtPnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vz
bid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21t
YW5kcyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQg
YmUgdHJlYXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdl
L1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDAwMDVkMDEwZDM1YmM2YzU4YzE4NjlkMTFh
YzcxODJmMmM4Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4NjE0NDA1NmNlODM0OGY1OTUwOWY1NmRlNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmNwcApAQCAtNDcsNSArNDcsNSBAQCBTdHJpbmcgV2ViRGF0YWJhc2VQcm92
aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpCiAgICAgICAgICYmIDo6R2V0TGFz
dEVycm9yKCkgIT0gRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhkYXRhYmFzZURpcmVjdG9yeSk7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkYXRhYmFzZURpcmVjdG9yeSk7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyMTMzMTVmYjdiYjdh
NWQ4NjRjYTgyOWI5MzNiMTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRiYmFmZjFiNGQ2YzczOTBhMTMz
ZWYyMDhiYTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6
ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdl
Lm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3Rl
VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06
CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxl
cnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29u
bmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQ
U2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDggIEpvbmF0aGFuIEJlZGFyZCAg
PGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQ3JlYXRlIHNlcGVy
YXRlIHF1ZXVlIGZvciB1bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQy
NGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1
OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBF
WFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJV
RShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwo
KS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01
Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAK
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7
Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsg
IjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9F
UShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5o
YXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7
CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRp
b25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFs
U3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9
OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBF
Q1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmln
aW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
Q29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJl
ZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3Rl
bS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIy
NDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2
YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAg
Ym9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVE
YXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1v
ZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFw
cGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1h
cHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNz
KTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3
YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2Ex
MDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBA
IC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dl
cmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBh
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0Ui
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0
aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNk
ZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5j
cHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29u
c3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
YWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRl
cik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1
aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsK
LSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRl
cik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVp
bGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxl
bmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEy
MzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0
eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBw
ZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0
cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmlu
ZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVy
KTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9z
LCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAi
Iik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWls
ZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFi
Y2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyks
ICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5
ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJC
IiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwg
J0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5n
QnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3Rp
bmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScs
ICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywg
YnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAg
ICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsK
ICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
QUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4
LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhl
IHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIs
ICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0
eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBF
WFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIi
LCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiAr
MTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0
cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3Ry
aW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWls
ZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4g
Y2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2Fw
YWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUg
U3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBl
bmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0
cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3Ry
aW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5h
cHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0K
IAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAt
MjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwog
ICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwog
ICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEo
c3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBD
aGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5k
KCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNl
cnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRl
ci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxk
ZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFy
YWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RF
RiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsy
NjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkp
CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4
KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAg
IGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgp
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWls
ZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3Ry
aW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVy
Lmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBi
dWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwy
MSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9U
UlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygp
ID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIp
KTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAg
YnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIp
OwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFj
aXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3Ry
aW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRl
cjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEp
OwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3Ry
aW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJl
aWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBA
IC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAg
ICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgy
NTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBh
MjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0
MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0
YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dp
dGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0
RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsK
ICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmlu
ZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0
c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAg
ICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywg
IiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0
YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFT
U0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAi
IikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3Bl
cmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0
MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIs
MTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0
b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmco
IlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAg
ICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJp
bmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5n
Vmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmll
dyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29w
eUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAK
aW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNi
ZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0
cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmll
dzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAg
U3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0
ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hh
cmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAK
LSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAg
IFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBF
WFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFM
U0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBU
RVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9v
cEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAg
RVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3Jh
cGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAg
U3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAK
ICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyAr
MTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpj
b2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJ
dGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBT
dHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwog
ICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRz
KCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwog
ICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBU
RVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5n
VmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9t
TGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdW
aWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFT
Q0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9V
UkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4Mzcw
NTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2Qz
ZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5j
cHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25z
dENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VR
KGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Ind3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsK
ICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3Vy
bC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3Vy
bC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dv
cmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBv
bmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVY
UEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9
CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgw
LDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJp
bmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRv
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNv
bTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5l
eGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5k
ZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2Rm
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8v
YS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0
cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3Lndl
YmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZh
bDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwg
dXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBA
QCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAg
IFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAg
VVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0
IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7
CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVz
dFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7
eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAg
IFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEi
X3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1
MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7
ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVy
bDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZh
bDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsi
a2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7
ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9z
LCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12
YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7
ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7
ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2
YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCks
IHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwg
eyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwg
dGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQg
eyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwog
ICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8i
X3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/
dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rl
c3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAg
IAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0
Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89
PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIi
X3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsg
IiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7
ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgw
NDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkg
QEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBG
cm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJp
bmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMi
IH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAg
bWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAK
ICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0
ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkx
MjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlv
bkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlv
biBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQ
RUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxW
aWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhC
aXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRh
eCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJF
eHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJ
SSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0
cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0
ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zy
b21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVy
YWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJv
bUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBA
IFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51
bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwot
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dp
dGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0
cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsy
MzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4
cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAg
IEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwor
ICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJp
bmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpA
QCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVD
VF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9E
b3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBz
ZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
IDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFp
bGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwog
ICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxz
ZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwog
CiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAi
aW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2sp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qg
c3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
bmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUo
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0
aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmlu
ZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAy
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJp
dCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9G
QUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3Ms
IDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0i
KS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5m
aXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70i
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBF
WFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJp
bmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVU
RjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0g
ICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5n
MSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxs
KCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBz
dHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5
KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJj
Il9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RS
VUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTku
LmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNw
cApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJz
aW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0
IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0
cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9t
TGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7
CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVu
c2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQx
ZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3
MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5n
IEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRl
c3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlz
IHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7
Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3Qg
OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3
ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZm
MzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRU
UEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTog
XCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAg
U3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVv
dGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJ
blF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAor
ICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwK
KyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAog
ICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRF
U1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAg
ICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAg
ICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJ
blF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkw
MDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzcz
ZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENv
ZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJp
bmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVu
Y29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5n
LCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZX
ZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rl
cjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENv
ZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3
MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZj
YmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBU
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZT
dHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBF
WFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkp
KTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
Y29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28u
dWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwu
dWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50
ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
cjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2Rm
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3Mp
KTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFs
RG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4
YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3Qi
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOl
w6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBs
ZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1Q
bGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxI
b3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShT
dHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
CmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1
MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDgg
QEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRm
KHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBp
KTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQi
LCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAg
ICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVj
b3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29y
ZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFi
YXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAg
ICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjky
ZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNi
ZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVk
QnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVk
QnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAK
IFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZN
aXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0
aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBi
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5v
dF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAt
NTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdp
dGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVy
OjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9O
T1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxl
bihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3Ry
aW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0
YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5j
b2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMu
LjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5j
b2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGlu
Z1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRw
Oi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThE
Il9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8l
QzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9y
U3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygi
bGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAg
Y2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7
Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJf
cywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Qv
P3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDov
L2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9z
LCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1
ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGlu
Z1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJf
cywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRw
Oi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29n
bml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJf
c30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0x
IikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAg
U3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwg
J1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhV
bWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0
cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hl
Y2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4
NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczov
L2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2Zj
N2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJh
Y2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdp
bidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFz
ZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAg
ICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxz
KQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRp
b24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgog
ICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3Jh
cnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VU
cmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0
YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3
IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5E
YXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJl
bW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7
CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0
YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBh
dGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9y
ZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVs
ZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRl
bGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ss
IGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRh
YmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJX
aXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcg
KzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFz
ZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxl
dGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91
bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFz
ZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNy
ZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmlu
ZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4
NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAg
UmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExs
V04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIK
ICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcx
OVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcv
dEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQ
Nmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3Mp
OwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0Ey
Z0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpA
QCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5
MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0
Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJ
aVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdi
QUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1J
L2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtX
Qi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShw
ZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0
RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMz
Y2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRi
Njg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4
Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4o
VG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4i
LCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1
ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNp
Z25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3Rp
bmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIw
LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihU
b2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0
YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNv
dXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlv
bl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2Vj
cmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmlu
Zy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tl
blZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5z
aXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9
IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3Vy
Y2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRf
dG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRp
b25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsg
MzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0
NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
aW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3
YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVP
cmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVj
dCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNo
YXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVP
cmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRp
cmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAs
IEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNP
RVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2Vy
dmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3Vy
Y2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0
L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7Cisg
ICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywg
c291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkp
OworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGlj
eSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5h
dGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9z
LCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0
aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5n
KGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVz
dGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAg
IGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3Ms
IGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2Uo
V1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZl
ciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNw
b25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQy
Nyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291
cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHBy
b2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3Vy
Y2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291
cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNP
RVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09y
aWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09Q
LCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlv
bkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAg
PT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09y
aWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0
aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VT
aG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0
byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBz
b3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29y
cCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5k
Q09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91
bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVj
YXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0
aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVj
YXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9
cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZl
LW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5B
bGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2
NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2Vy
QmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsK
ICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAg
ICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewot
ICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBl
IiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAi
dGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYp
IHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAi
Q29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxp
c3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGlj
YXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2Vy
aWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2Vp
dmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0
UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkp
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZl
MTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZy
YW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwv
aWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4
cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdp
RnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBz
dWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8
c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAg
ICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3Jp
cHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxG
ZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5D
b3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5D
b3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTku
LjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0K
QEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5
VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAg
ICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdl
bmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJr
aXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVT
dHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwog
ICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMu
LmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2
LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBE
T01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2Rv
Y3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0g
W2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5k
ZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3
NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3
ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQK
IAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBh
bmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJG
cmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVz
c2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkp
OwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
SFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJh
ZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBD
b25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQi
IH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAg
ICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3Qp
IH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAg
ICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMt
V2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAg
ICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8p
LCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMz
LDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAg
InE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZS
SXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3
NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZ
N0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1pr
N21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJf
cyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVt
RW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmlj
YXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVz
dFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lH
SEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5
RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNw
U2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZl
IgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJi
ZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRl
S2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RG
TW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3Bw
CmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3
MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIv
bGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0
ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7
CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51
bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5n
SW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5n
IGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9
OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBs
KCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8g
YW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmlu
Z0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3Ry
aW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIp
Owo=
</data>
<flag name="commit-queue"
          id="485648"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457144</attachid>
            <date>2022-04-08 21:51:59 -0700</date>
            <delta_ts>2022-04-08 22:17:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408215158.patch</filename>
            <type>text/plain</type>
            <size>188907</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNm
NDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBl
ci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlm
aWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0
cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBT
U0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NM
X2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wq
IHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0
X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShT
U0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVi
bGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZh
ZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNT
dWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwog
ewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRv
bWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlm
IChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihw
c2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07
CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcx
N2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJv
bm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3Ig
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAg
ICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRl
eCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFk
ZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAg
ICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMo
Y29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsg
aXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNv
dXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwot
ICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0
cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4p
IHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9z
dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkp
KSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRh
NTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uZjdmMTZmOWNjMTVmYTcxZGVh
OGE5MDMzMmIxZDFkZjBkMzAxN2RjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
Ojp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0
dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBHRXJyb3IqIGVycm9yKQpAQCAtNjQsMTkgKzY0LDE5IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBf
RVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYw
MmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYzNWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3
MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2Nh
bGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVDb2NvYTo6c2hvcnRNb250aExhYmVscygpCiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVs
cy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhO
YW1lKQotICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRB
cHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQz
NmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFj
ZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgsMTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6
aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAgIERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGln
aXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdldExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNU
SVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24pOwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9
PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjAiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3lt
Ym9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMg
PSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNT
RVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1Nzlk
YjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQy
ZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsK
KyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxl
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhp
c3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9
IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1Q
YXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1Q
YXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAg
ICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3Qt
PkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJ
IHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBl
bHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERy
YWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9j
dW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VV
UkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBT
dHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAg
IHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJM
U3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0
MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApA
QCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXND
bGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENG
X1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3Rl
cnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0
IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0
LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEg
PSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7
CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAg
ICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVm
N2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9y
dGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mg
c2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAg
di5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwg
Y29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5
ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2
MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5z
dGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0la
RV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFs
dWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVm
ZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4i
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZl
MmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2Ug
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdl
cjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5
N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNF
KElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAg
aWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9B
RERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9Owor
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsK
ICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0
YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5j
bXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRT
dHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAg
ICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0g
bnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lv
biBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2
YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENh
cGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52
YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsK
ICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
NzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAg
ICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09O
IExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEz
ICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlz
dC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGlu
IGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBv
ZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0
Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRh
dGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQog
CkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAg
ICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzgu
MSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNu
ZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRy
PEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0
aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1
dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUg
PSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBh
dXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlz
IGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
IGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBr
ZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFr
ZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNz
aW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmlu
ZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRp
b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9y
aWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9y
aWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwog
ICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVu
dCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsy
MDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9y
aWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50
ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
IngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUs
IElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50
ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICgh
YnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0g
dW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBw
b2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9u
KGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9u
IGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsK
QEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0
ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9
PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6
OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+
PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0
byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBp
ZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlv
blNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikK
ICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJp
ZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9y
Q3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAg
IGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5
cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rp
b24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50
ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlv
bkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
Y3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlv
bkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3
ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0Fy
cmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
c0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBh
MDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYx
OTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtp
dDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0
Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNl
V2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmlu
ZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2Fk
YTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2lu
L1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2
YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJk
NzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBh
YmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcg
KzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9t
YXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0
aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlk
ZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05
MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRp
cmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6
OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19N
QU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VT
U0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3Rz
IikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9S
X1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFk
Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAg
ICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBl
cnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAg
ICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5
dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVh
bQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1
dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAg
U3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJz
LCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlw
ZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51
cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFj
dENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jl
c3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcg
KzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAg
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJW
YWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVh
ZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVz
dEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7Cisg
ICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5h
bWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShz
b3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEs
NyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0Zp
bGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwi
X3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0
X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAg
ICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAg
IGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxl
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJy
b3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdf
SU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+
Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlu
cHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNS
ZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxl
RW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxk
cmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJv
cikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVx
dWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAg
ICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdU
Rk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIy
MWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
ICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3Ii
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
Y2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0
aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGlu
MShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0
KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAK
aW5kZXggYTIxNjNmZDA5MmI0NTQzY2FhNWE1MjA5MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2Fj
ODg3M2IxNzQzMWY5ZWQ1NjdiMjFjOTliZmIyM2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VM
VCBBY2Nlc3NpYmxlVGV4dDo6c2V0QXR0cmlidXRlcyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVu
ZE9mZnNldCwgQlNUUiogYXQKIC8vIElBY2Nlc3NpYmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4
dDo6Z2V0X2F0dHJpYnV0ZXMoQlNUUiogYXR0cmlidXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0
ZXh0KCJ0ZXh0LW1vZGVsOmExIik7CisgICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDph
MSJfcyk7CiAgICAgKmF0dHJpYnV0ZXMgPSBCU3RyaW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFk
YTBmZGEyNGE1NzQwNjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJm
MGZiMmNkMDRkNjIxYjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAg
LTIxNDcsNyArMjE0Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJl
c3NFdmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJh
bWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9
KTsKKyAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZy
b21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50
LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJL
aXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBo
b3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Ig
c2hvdWxkIGJlIHRyZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9z
dG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
c3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMx
ODY5ZDExYWM3MTgyZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlm
NTZkZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFi
YXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6
OkdldExhc3RFcnJvcigpICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1
ZmI3YmI3YTVkODY0Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3
MzkwYTEzM2VmMjA4YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBT
dHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5
c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0
b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENy
YXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNj
cmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0
ZSBzZXBlcmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhj
M2RhYmRkMjRjMzFmYzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFi
OTMxZDAwNTk1NjBhMTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykK
IHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwg
eyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7
CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9
IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29w
eS5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkp
OwpAQCAtNTMsNyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3Ry
aW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdv
UmVmKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAg
ICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBF
WFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3
IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYp
CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsK
LSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9
IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmlt
cGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25l
UmVmKCkpOwpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29w
eUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZP
cHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAi
MTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9
OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAg
ICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05V
TEwob3JpZ2luYWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBz
dHJpbmcgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1w
bCgpLT5yZWZDb3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
bGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0
ZDAuLmRiMjQ2NTIzOTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcg
QEAgcHJpdmF0ZToKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQog
ewogICAgIGJvb2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBw
ZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBl
ZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVE
YXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uo
c3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1
MzBjNDI5N2IwMWY0YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhk
Y2JlYzdhMTAxMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hl
eE51bWJlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVy
LmNwcApAQCAtNDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChp
bnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwg
MiwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dl
cmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwQSJfcywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5
Y2FlZmVjZGQ0MzJkNDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgy
NjE2ODMwNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1
aWxkZXIuY3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVm
YXVsdENvbnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVy
KTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Qi
LCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAK
ICAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygi
IiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxk
ZXIpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZl
Q2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIEFwcGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBz
dHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwg
YnVpbGRlcik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQog
ewogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIs
ICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
IiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdD
JywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJD
IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiX3MpLCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygm
YnVsbHNleWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
QSIpLCAiQiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3Mp
LCAiQiIsICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhl
IFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhl
IGV4aXN0aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNk
IiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsK
ICAgICAgICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSAr
IDMpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwg
IiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXll
LCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVy
IGZyb20gOC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5
IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwg
ImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAg
ICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAi
Iik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0x
OTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsK
ICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRl
ci50b1N0cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
ZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
LCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQg
b2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmlu
ZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RF
RiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJf
cyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5n
MSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSkKQEAgLTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNp
dHkoKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1w
bCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQ
RUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVy
LmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBz
aG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHks
IGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7
CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmlu
Zyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJp
bmdCdWlsZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmlu
ZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBF
Q1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
ZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBz
dHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0y
NjIsNyArMjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFy
YWN0ZXJzOCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQo
IiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODki
KTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5s
ZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAg
ICAgYnVpbGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgp
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRl
ci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwg
YnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7
CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBA
IC0zMTEsMjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBF
WFBFQ1RfVFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5n
KCJhYmMiKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsK
IAogICAgIGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFj
aXR5KDMyKTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2Vy
dmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwot
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ID09IFN0cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09
IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1
aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIy
ICE9IFN0cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBh
ZnRlciByZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIy
KTsKIApAQCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0
cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEy
MyIpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2Fw
YWNpdHkoMjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBh
NzYyYmUwYTIyNzFiODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVm
NGJlNmU0NDFkZWJjMjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmlu
Z0ltcGxTdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBT
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmco
IlRlc3QgdEVTVCIpOworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0
IHQiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShzdHJpbmcsICJ0ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxT
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4Iikp
OwogCiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShz
dHJpbmcsICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShTdHJpbmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9G
QUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsK
ICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoKSwgIiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ09wZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTEx
ZmMuLmI0NDJlNDM2OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIs
MTEgKzQyLDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmlu
Z09wZXJhdG9ycykKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcg
c3RyaW5nKCJTdHJpbmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmlu
ZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0g
ICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5n
IHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0
cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0
cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1Zp
ZXcuY3BwCmluZGV4IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJh
ZjRkN2FjYmVlM2Y2NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1Qo
V1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcg
bnVsbFZpZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgp
OwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcg
c3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRo
Q2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3
V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBU
RVNUKFdURiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VF
RCgpOwogCi0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIp
KTsKKyAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQx
LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkp
OwogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0
eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIp
OworICAgIFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhl
bG8pOwogCiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAt
MTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVD
VF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9
IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7
Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0
Il9zKTsKICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29k
ZVBvaW50cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVn
aW4oKTsKICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRF
U1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVy
cykKIAogVEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVD
VF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVY
UEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFT
Q0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi
8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmlu
Zzo6ZnJvbUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUo
U3RyaW5nVmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSku
aXNBbGxBU0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5k
ZXggODM3MDU3MGFhZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMx
MDU1OTdkM2Q4MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVj
dG9yQ29uc3RDaGFyKQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVY
UEVDVF9FUShrdXJsLnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJp
bmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgw
ODAsIGt1cmwucG9ydCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1l
IiksIGt1cmwudXNlcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJs
LnBhc3N3b3JkKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwu
cGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBh
dGhDb21wb25lbnQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1
ZXJ5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVu
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsK
ICAgICBFWFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOwogfQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcp
CkBAIC04MCw0MyArODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVy
bEFzU3RyaW5nKQogVEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAg
ICAgYXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29y
ZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4
MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJh
c2RmOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERh
dGFVUklTdHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBV
UkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwo
Ind3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDEsIHVybDIpLCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICsz
ODgsNjcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAg
ICAKICAgICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3Mp
OwogICAgIFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVj
dG9yMzQpOwogICAgIAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJs
NiksIHRlc3RWZWN0b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwx
NCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEzMTQge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3Ms
ICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAg
ICAKICAgICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUx
NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RW
ZWN0b3IxNTE2KTsKICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7
eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIi
X3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAg
IFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEm
a2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFs
MSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIi
X3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTcsIHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwx
OSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
OTIwIHsgeyAia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFs
MyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwg
dXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0
ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAi
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1
cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRl
c3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3Iy
MzI0KTsKICAgICAKICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsg
eyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4
KTsKICAgICAKICAgICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3Mg
fSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyOSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVy
bDMxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1
cmwzMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMx
MzIgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDMxLCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJs
MjUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1
cmwyNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8i
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
NTI2IHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyNSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1
Y2JlMzI4MDQ5OTQzNTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEw
OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkg
Kzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3Rv
ciwgTWFwRnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwot
ICAgIG1hcC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5z
ZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5n
IHsgImszIiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3Mp
OworICAgIG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMi
X3MpOwogCiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIu
dmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRl
eCBiOTMzNGQ0NWZiZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3
NGY0ZmY5MTI1YWQ1MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5n
Q3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25z
dHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwog
ICAgIEVYUEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21M
aXRlcmFsVmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlv
biBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFs
VmlhQVNDSUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRl
cmFsIl9zdHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5n
RnJvbUxpdGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4
Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zy
b21MaXRlcmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0
cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyAr
NzAsNyBAQCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0
cmluZyBudWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJp
bmcoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3Ry
aW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShz
dHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1Rf
VFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0y
MzEsNyArMjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0
cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7
CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3Ry
KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVj
dGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0
ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAg
ICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwog
Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEi
X3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwg
aWYgd2Ugc2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50
b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9r
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25v
cmUgdHJhaWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJh
bnRlZXMKICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1
cm4gZmFsc2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1
Y2ggYXMgImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50
b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3Vi
bGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3Vi
bGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVy
cywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIm5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFu
IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRv
RG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgm
b2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5m
aXhTdGFydGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
c3QiKSwgMikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9z
KS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAy
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
InN0Il9zLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhT
dGFydGluZ0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRG
OCgi5LitIikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmlu
Z2hhc0luZml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi
5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7
CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUi
KSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6
OmZyb21VVEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNo
KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5n
IHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcx
LmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7
CiAgICAgc3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdU
RiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNo
YXJBcnJheSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmlu
ZzEoImFiYyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVY
UEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2In
IH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVj
MDFiODU5Li5hOTk3MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVz
dCwgUGFyc2luZ0ZhaWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENv
bnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAg
ICBjb25zdCBjaGFyIG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0
YXR1cyhTdHJpbmcgeyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmlu
Zzo6ZnJvbUxhdGluMShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJz
ZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZm
Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9u
QVNDSUkpOwogICAgIAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRl
bnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5
ZTIwYTM0MWQ1YjFjOGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIw
MDg1MzRkNzMzNWQ4MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9y
IHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgi
VGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBG
aWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRl
c3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMg
aXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0
b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3
NzBiMDcyN2ZkZWYyOTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2Uz
NjY0YjQ2ZjMxODBkZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBU
RVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAg
ICAgImE6IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0g
ICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25B
U0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90
ZWRQYWlySW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21t
ZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29t
bWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1
b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUs
NyBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywK
ICAgICAgICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywK
LSAgICAgICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRp
bjEoZGVsSW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4
IDE0NzE5MDAwZGUxZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4
MDlkMWM3M2Q3NTdjYTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1Qo
S2V5ZWRDb2RpbmcsIFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5k
R2V0U3RyaW5nKQogewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6
S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29k
ZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVW
YWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXll
ZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1Qo
S2V5ZWRDb2RpbmcsIEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhk
YWRmYWEyNzExMDg1ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNi
Y2E0NWRmY2JlOTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1
ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0
cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNv
bSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50
ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJi
bC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcu
MC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5j
b20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cu
Y29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1
YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50
dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0
LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYu
Y29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJl
Y3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20i
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9j
YWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFp
bi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TD
tiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiw4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hE
YXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFi
YXNlLmNwcAppbmRleCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5h
NjI0MGEzNTMwZjE0Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDgg
KzQzMiw4IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBz
bnByaW50ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0
LyVkIiwgaSk7CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRv
cGljXyVkIiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9
OwotICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAg
ICAgIHJlY29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAg
ICByZWNvcmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAg
ICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3
NDk3MTI5MmZjMWNjMmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVl
YjVjZmYzYmUzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250
ZW50c09mTWlzc2luZ0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAg
IGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3Ry
aW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9
CiAKQEAgLTUyLDcgKzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBj
cmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBB
U1NFUlRfTk9UX05VTEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9
PSBzdHJsZW4oRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkp
ID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXpl
KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJl
ZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3Vz
KCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRF
bmNvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
VGV4dEVuY29kaW5nLmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJk
ZGE5ZDczLi40ZDI3ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
VGV4dEVuY29kaW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0
RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5n
KHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5
RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8v
aG9zdC8/JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNW
YWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShT
dHJpbmcoImxhdGluMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIp
OwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxh
dGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsICJxdWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRw
Oi8vaG9zdC8/cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwg
Imh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRx
dWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9o
b3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0
RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAm
dW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9o
b3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNP
LTg4NTktMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIp
OwogICAgIFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwg
MHg0NTEsICdcMCd9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8i
LCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywg
ZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwog
ICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyks
ICZpc284ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCks
ICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVz
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRy
YWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQy
NzAuLjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVkMjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJU
ZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRh
YmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2Vy
LCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRo
ZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQg
RGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAg
IE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlE
aXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFj
a2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJh
c2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhp
c3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBU
aGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgog
ICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3Jh
cnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VU
cmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0
YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3
IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJh
c2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGlu
Zm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRh
Ymxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERh
dGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
V2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3
ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdF
bnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGls
bCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRh
YmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERp
cmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIp
OwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhT
dHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tl
ciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndl
YmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNr
ZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVy
IHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJv
bSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFi
YXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAg
LTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVu
RGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkg
dG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8g
V2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUg
RGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFs
bGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5n
ZS5tbQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0
YTMwNmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWViZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0
MSw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1p
SzFUWHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhBeWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lp
WUpLZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJMa1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1G
T29Ta1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9V
Unlpcm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBGbTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1U
SEJncElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZh
Vjl6Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJ
RmdEQ0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVF
QmhNQyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJ
ZGVudGl0eTIoKQogICAgICI0Nml6aG91M0dTS3ozWDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxN
RjFFZ3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAgICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpq
VGp4aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0b0lNQUlHakNpIgogICAgICJKQUgybnhLR3Vx
dEFLMmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJPaVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgot
ICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2
OXExQ3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjRE
ZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9
IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmlu
ZGV4IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEwZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAy
ZTlhNTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4
Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3Jl
dFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAg
ICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8x
LjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXpl
KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0g
VG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9r
ZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFy
dHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5n
KCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIw
LDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0
VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVl
c3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVz
dGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNv
dXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0
aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVz
dDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9p
ZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5
IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZl
Y3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25f
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0g
cmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRi
ZTgwMDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3Mg
SXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBj
b25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwg
SXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJT
aWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3Vy
Y2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGlu
YXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVj
dCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVz
aW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9z
LCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09P
UCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VI
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJj
ZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRl
ci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
ZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQt
VHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAg
ICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3Ms
IFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAg
aWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jv
c3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOwor
ICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9s
aWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJl
c3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhU
VFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBI
VFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3
LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNo
YXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAg
YXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJv
b2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3Ry
Y21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChz
b3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0
aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVz
dGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNy
b3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3Vy
Y2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3Mg
JiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUo
c291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAog
ICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2
b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3Qg
Y2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUt
Y29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
bkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAz
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
QWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1
aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAg
Ly8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBz
d2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJl
Y2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMs
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBz
d2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFu
ZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVk
aXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7
IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4z
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsg
fSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQ
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZp
ZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIx
NGJiYTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRjNzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0yMTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZp
Y2VXb3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikg
ewogICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+
JiYpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRl
bnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewor
ICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlw
ZSJfcywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rvcjxj
aGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9u
c2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVu
dFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywg
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3Jp
cHQpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hh
ciopbGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Qu
c2l6ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3
NmJlNTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJkMWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBw
YXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5o
dG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMg
Y29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUn
IHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHBy
IGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0
Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtd
ID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7Igog
Ijwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRN
ZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRN
ZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4
NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5
VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51
Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwog
ICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVi
b2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFi
c29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgp
LCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dl
YlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzVi
MGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
CkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwp
CiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVu
dCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAq
dGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2Fl
Y2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzoo
V2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAq
KVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0
QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFt
ZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3Ry
aW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1l
c3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBl
ZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBA
IHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vi
c29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAg
ICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShy
ZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisg
ICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAg
eyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3Qp
IH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5n
dGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMz
LDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUo
KQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUr
cTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRq
VVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9X
Ky85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpa
RDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThN
ZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVj
b2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRD
ZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2
ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkv
SmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFz
enR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAi
ZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0
ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAi
cUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVk
UHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0
dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIv
bGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9t
YWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5j
M2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29s
cy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyArNTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxl
RmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3VtbWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3Ry
aW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAg
IFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAg
IFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7
ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVtcHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJp
bmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJpdFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAg
ICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAg
ICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBsID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAog
ICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYxNlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9c
dTE2ODAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457145</attachid>
            <date>2022-04-08 22:17:41 -0700</date>
            <delta_ts>2022-04-08 22:40:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408221740.patch</filename>
            <type>text/plain</type>
            <size>189953</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNm
NDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBl
ci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlm
aWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0
cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBT
U0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NM
X2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wq
IHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0
X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShT
U0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVi
bGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZh
ZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNT
dWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwog
ewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRv
bWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlm
IChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihw
c2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07
CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcx
N2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJv
bm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3Ig
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAg
ICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRl
eCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFk
ZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAg
ICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMo
Y29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsg
aXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNv
dXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwot
ICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0
cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4p
IHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9z
dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkp
KSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRh
NTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uZjdmMTZmOWNjMTVmYTcxZGVh
OGE5MDMzMmIxZDFkZjBkMzAxN2RjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
Ojp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0
dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBHRXJyb3IqIGVycm9yKQpAQCAtNjQsMTkgKzY0LDE5IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBf
RVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYw
MmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYzNWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3
MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2Nh
bGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVDb2NvYTo6c2hvcnRNb250aExhYmVscygpCiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVs
cy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhO
YW1lKQotICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRB
cHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQz
NmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFj
ZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgsMTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6
aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAgIERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGln
aXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdldExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNU
SVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24pOwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9
PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjAiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3lt
Ym9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMg
PSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNT
RVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1Nzlk
YjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQy
ZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsK
KyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxl
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhp
c3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9
IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1Q
YXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1Q
YXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAg
ICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3Qt
PkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJ
IHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBl
bHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERy
YWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9j
dW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VV
UkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBT
dHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAg
IHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJM
U3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0
MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApA
QCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXND
bGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENG
X1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3Rl
cnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0
IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0
LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEg
PSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7
CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAg
ICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVm
N2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9y
dGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mg
c2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAg
di5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwg
Y29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5
ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2
MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5z
dGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0la
RV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFs
dWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVm
ZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4i
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZl
MmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2Ug
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdl
cjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5
N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNF
KElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAg
aWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9B
RERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9Owor
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsK
ICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0
YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5j
bXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRT
dHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAg
ICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0g
bnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lv
biBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2
YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENh
cGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52
YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsK
ICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
NzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAg
ICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09O
IExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEz
ICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlz
dC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGlu
IGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBv
ZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0
Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRh
dGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQog
CkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAg
ICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzgu
MSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNu
ZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRy
PEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0
aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1
dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUg
PSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBh
dXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlz
IGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
IGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBr
ZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFr
ZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNz
aW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmlu
ZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRp
b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9y
aWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9y
aWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwog
ICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVu
dCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsy
MDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9y
aWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50
ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
IngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUs
IElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50
ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICgh
YnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0g
dW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBw
b2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9u
KGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9u
IGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsK
QEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0
ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9
PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6
OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+
PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0
byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBp
ZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlv
blNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikK
ICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJp
ZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9y
Q3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAg
IGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5
cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rp
b24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50
ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlv
bkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
Y3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlv
bkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3
ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0Fy
cmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
c0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBh
MDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYx
OTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtp
dDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0
Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNl
V2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmlu
ZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2Fk
YTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2lu
L1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2
YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJk
NzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBh
YmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcg
KzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9t
YXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0
aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlk
ZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05
MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRp
cmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6
OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19N
QU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VT
U0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3Rz
IikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9S
X1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFk
Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAg
ICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBl
cnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAg
ICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5
dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVh
bQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1
dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAg
U3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJz
LCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlw
ZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51
cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFj
dENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jl
c3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcg
KzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAg
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJW
YWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVh
ZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVz
dEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7Cisg
ICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5h
bWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShz
b3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEs
NyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0Zp
bGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwi
X3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0
X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAg
ICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAg
IGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxl
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJy
b3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdf
SU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+
Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlu
cHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNS
ZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxl
RW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxk
cmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJv
cikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVx
dWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAg
ICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdU
Rk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIy
MWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
ICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3Ii
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
Y2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0
aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGlu
MShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0
KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCmluZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVh
NDdkMDhkYzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMg
aW50IGNyZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAg
ICAgZm9yIChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEw
OyArK3RyaWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVt
b3J5LiIpICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9t
TnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkp
OworICAgICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1l
LnV0ZjgoKTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNj
ZXNzaWJsZVRleHRJbXBsLmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEz
MzMxMWVjNjg0Li4zNWMyODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3
Niw3ICs2NzYsNyBAQCBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcg
c3RhcnRPZmZzZXQsIGxvbmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBI
UkVTVUxUIEFjY2Vzc2libGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQog
ewotICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmlu
ZyB0ZXh0KCJ0ZXh0LW1vZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4
dCkucmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAppbmRleCA3ZjUyMWRhMGZkYTI0YTU3NDA2ODBhMjQzNzliODJjYjI0MDM0MzM4Li43
NzI0ZmIwMDJhMWFhMjgwMzZiMmYwZmIyY2QwNGQ2MjFiMzUxZTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcApAQCAtMjE0Nyw3ICsyMTQ3LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5k
bGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZl
bnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9
IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnBy
ZXRLZXlFdmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3Io
KS5jb21tYW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7
CiAKICAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3du
KSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFi
b3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYg
ZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUgdHJlYXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4
IDAwMDVkMDEwZDM1YmM2YzU4YzE4NjlkMTFhYzcxODJmMmM4Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4
NjE0NDA1NmNlODM0OGY1OTUwOWY1NmRlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcApAQCAtNDcsNSArNDcs
NSBAQCBTdHJpbmcgV2ViRGF0YWJhc2VQcm92aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
UGF0aCgpCiAgICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkgIT0gRVJST1JfQUxSRUFEWV9FWElT
VFMpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhk
YXRhYmFzZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkYXRhYmFz
ZURpcmVjdG9yeSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYzcyMTMzMTVmYjdiYjdhNWQ4NjRjYTgyOWI5MzNiMTA1NzczNWNjYy4uMzQ4
ZDg1YWI5NmRiYmFmZjFiNGQ2YzczOTBhMTMzZWYyMDhiYTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0
LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBv
cnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhj
b25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3Ry
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1
YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5j
b2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNl
bmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdh
dGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5
RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIw
MjItMDQtMDggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtNZXJnZS1RdWV1ZV0gQ3JlYXRlIHNlcGVyYXRlIHF1ZXVlIGZvciB1bnNhZmUgdmVyc2lvbgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVl
ODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9Owor
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpA
QCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5n
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0
cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9z
IH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsK
ICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9O
VUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQi
IH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2lu
YWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92
ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCks
IDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlS
VlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlM
Vk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9z
IH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBF
Q1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdU
Rk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJl
ZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcg
QEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29S
ZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcg
eyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmlu
ZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQ
RUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNh
NGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNh
ODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5
c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBN
YXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06
Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUi
KSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmls
ZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3Rp
bmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3Mp
OwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmls
ZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4
TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
aW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3
NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhl
eE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEs
IExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
YSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2Up
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJ
bnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgw
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2Vy
KSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5k
ZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0
NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0
ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVy
LmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRl
ciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRl
ci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFj
dGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxk
ZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIx
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlh
YmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwog
ICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4
cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVj
dGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxz
ZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwg
MSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdo
ZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwg
YW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVF
KGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgp
LCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
QSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
QSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
bWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZl
cnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZl
IGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5Lgog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAg
ICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1
aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBi
dWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIp
LCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJf
cyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFr
ZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxk
ZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFw
cGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5n
KCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShz
dHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5n
ZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90
IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3Ry
aW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwg
c3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIu
dG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9T
dHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVy
LnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFj
aXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRl
ci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAg
RVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90
IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSAr
MjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAg
IEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEo
c3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNh
cGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcx
LmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVz
aXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxk
ZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0
ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyks
IHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwx
NSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVy
LmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBF
Q1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEo
OFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVp
bGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7
CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RF
bXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2Fz
dDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAh
PSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBi
dWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7
CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIx
MjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0
NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNU
X1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIz
IikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIz
IikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50
b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUo
YnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVp
bGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0
cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIu
c2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0
ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwx
NCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhF
bXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7
Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVz
dCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RS
VUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3Qi
KSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJU
X1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAi
IikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0
MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQz
NDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0
cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBh
dG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVND
SUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5n
VmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9
OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAg
ICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2Nk
ZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1
YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwp
CiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9
IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJo
ZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAg
IFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAog
ICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7
CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAg
ZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFj
dGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJz
KFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJz
LmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHko
KSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykK
ICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHko
KS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRp
b25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAg
IFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0
cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmll
dy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJ
dGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAg
Y29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQ
b2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBT
dHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0
cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0g
d2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAt
OTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFp
bGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkp
CiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVND
SUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxs
QVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlz
QWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAi
KSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVs
bG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5n
KCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgp
KTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3Qg
VUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5
YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0Yo
V1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5p
c1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRy
dWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3Qo
KS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3Mp
LCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgp
KTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
L2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4
Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5h
bWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3Mp
LCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9z
KSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBr
dXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwi
X3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21l
bnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3Vy
bC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJ
TGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0
ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9j
b2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJu
YW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxl
LmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRl
VVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3
LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTov
Ly9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2Ei
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBU
RVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcg
QEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBV
UkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEi
LCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAg
ICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJf
cywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5
UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJs
MTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFs
MiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZh
bDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwg
dGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJf
cywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12
YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIg
eyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVj
dG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEi
LCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwz
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7
CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkx
IiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFs
MiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3Ms
ICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9z
IH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBV
UkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAg
VVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0
ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVS
TCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAg
ICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQg
e3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRl
c3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMs
IHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRl
c3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVy
bDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3Qi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
OTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMw
KTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIp
OwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2
YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3
N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9W
ZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFN
b3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7
ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7
Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFw
LnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAg
bWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1h
cCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewog
ICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0
YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEz
IEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShz
dHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxW
aWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24g
c3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3Ry
aW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
RXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9z
KSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxp
dGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJp
bmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VR
KCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShz
dHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5n
IExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0
cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3Ry
aW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1w
dHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3Ry
aW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVy
cygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsK
IAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0
cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgo
ZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVy
SW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVh
bSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmco
ZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJp
bmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwg
U3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYs
IFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3Vi
bGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUo
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0Rv
dWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsK
KyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUo
b2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBz
ZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVF
KG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZv
ciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50
LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQn
cyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgi
KS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0Rv
dWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2sp
KTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBu
b3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
ImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImlu
ZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAg
Ly8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgot
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRF
U1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhC
aXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAw
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygi
VGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0
KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3Mp
Lmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
KCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9G
QUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0Niwx
MyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLk
uK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsK
IAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RG
LCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExp
dGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAg
RVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcx
LmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYz
LDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBT
dHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMi
KTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5n
MS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNo
YXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2Yz
NDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5
OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5T
dGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9
OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRl
bnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVz
dFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVu
c2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0
UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJz
ZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMo
IlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VT
dGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmls
ZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4
MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQs
OSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMg
YSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVz
dCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9z
KTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hh
bmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNv
bmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3Mp
OwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJs
aWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhl
YWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5
ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
CkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAg
ICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwi
YVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0g
ICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBT
dHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJv
bUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9u
QVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5v
bkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52
YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAg
ICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTog
XCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBz
aG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9L
ZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUx
NTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0x
NTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNU
KEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNp
bXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6
OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQ
RUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0
cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktp
dCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3Bw
CmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRk
MGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1Nywz
MCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQog
ICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5q
cCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUu
XHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpm
MGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFv
NjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHci
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVr
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54
bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVz
dC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEi
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBF
WFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsK
ICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNv
bSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9F
USh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rp
b25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VC
LmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9z
dCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxo
b3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
Zzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOl
w6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0
LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4
YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMw
MzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0
YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0
YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZs
aWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBp
KyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDov
L3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGlj
LCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29w
ZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcg
eyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0
b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1
dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApp
bmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZl
ODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4
aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdp
dGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNT
RVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRl
ZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAg
IGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVt
cEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9U
UlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6
dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+
ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxh
dGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1
ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhp
c3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1
MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdm
YmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAg
VEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAg
Y2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxw
dHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1
dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlG
JTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpU
ZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29k
aW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3
aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywg
ZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsK
ICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5
Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tV
UkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAg
VEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hl
Y2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwo
Imh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rpbmcg
aXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlz
bzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJp
bmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJp
bmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBl
bXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMz
JTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlD
JUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9w
YXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5
MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEi
X3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGVi
MDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4
NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAg
VEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2Us
IHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUg
T3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRh
YmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7
CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldo
ZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFz
ZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3Zl
ZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAg
ICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0
Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdp
bldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hv
dWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBv
cgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5m
b3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwg
YW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBA
QCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0
YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJl
IGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJl
IGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJl
Y3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsK
LSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3Ry
aW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIg
PSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJr
aXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2Vy
LCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRo
ZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhp
c3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBp
bmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdh
MTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxl
bmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxl
bmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0
SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0
cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RS
TmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNV
OWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIK
LSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpP
L05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0
aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBC
QVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxT
ZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFli
WkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4
UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdq
Q2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZ
a09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsK
KyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZh
dGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0
byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50
QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2
ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2Fh
M2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25Vbmxpbmth
YmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5
CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRh
dGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5k
YXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtl
eSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJz
b3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxl
X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJs
ZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQo
a2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQo
JyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2Fi
bGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkK
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRT
dHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9z
KSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmlu
ZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9
IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcg
KzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9r
ZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tl
bik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5k
YXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2Vu
U2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0
dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0
NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2
ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIy
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIz
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9t
Q09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51
bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0
IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hh
ciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQor
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09P
UCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1As
IEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4s
IERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4
cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMu
YWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09Q
KQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNP
RVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9s
aWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25I
ZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVz
dGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBk
ZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVz
dGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5h
dGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmco
ZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJl
c3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAi
cG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0
PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9j
b2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09F
CiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vz
c1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291
cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29s
IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09Q
ICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlv
bkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBi
b29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNh
bWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29s
IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09Q
ID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJf
czsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0g
ZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBF
eHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSAr
NzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFy
KiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRD
T0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlv
biBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4p
CiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09F
UC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8v
IFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9
c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olll
cyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BB
bmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewog
ICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZl
IENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
QW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9
LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFi
bGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIx
ODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2
YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSAr
MjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2lu
ZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29u
bmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcyku
c2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5z
ZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQ
UmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVj
dGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBb
PV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsg
eyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRl
bnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+
JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJV
RShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVz
b3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJp
YWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcw
ODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVl
MjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5t
bQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhl
RnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBz
dWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48
aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJf
czsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0
eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBj
b25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRp
YWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7
CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEz
NmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcy
ODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktp
dExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmso
d2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9t
UGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0
ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Il9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNv
cHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5
MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRl
M2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dl
YlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ks
IFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0g
KERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAi
YSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0
ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBl
NjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcg
QEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3
ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVz
c2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1Zjcw
OWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2
MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hU
VFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1t
CkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2Uo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsK
IAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAg
ICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9u
IiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdl
YlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3Ms
ICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRl
Il9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0
QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNl
OjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7
CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2
ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0
eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lU
Zm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAg
IkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtP
NkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3Zq
WkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2Vy
dGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1
cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0
b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4
ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgog
ICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xn
Tm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJ
M0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSksw
SExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7
CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQ
cml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxk
Yi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2
MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMy
YmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysg
Yi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBA
QCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJv
dmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBh
TnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxT
dHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0
cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJp
bmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5n
IHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0
aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhC
aXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5n
KHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457148</attachid>
            <date>2022-04-08 22:40:16 -0700</date>
            <delta_ts>2022-04-08 22:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408224015.patch</filename>
            <type>text/plain</type>
            <size>190609</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNm
NDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBl
ci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlm
aWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0
cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBT
U0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NM
X2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wq
IHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0
X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShT
U0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVi
bGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZh
ZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNT
dWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwog
ewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRv
bWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlm
IChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihw
c2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07
CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcx
N2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJv
bm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3Ig
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAg
ICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRl
eCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFk
ZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAg
ICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMo
Y29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsg
aXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNv
dXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwot
ICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0
cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4p
IHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9z
dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkp
KSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRh
NTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uZjdmMTZmOWNjMTVmYTcxZGVh
OGE5MDMzMmIxZDFkZjBkMzAxN2RjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
Ojp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0
dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBHRXJyb3IqIGVycm9yKQpAQCAtNjQsMTkgKzY0LDE5IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBf
RVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYw
MmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYzNWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3
MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2Nh
bGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVDb2NvYTo6c2hvcnRNb250aExhYmVscygpCiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVs
cy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhO
YW1lKQotICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRB
cHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQz
NmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFj
ZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgsMTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6
aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAgIERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGln
aXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdldExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNU
SVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24pOwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9
PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjAiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3lt
Ym9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMg
PSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNT
RVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1Nzlk
YjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQy
ZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsK
KyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxl
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhp
c3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9
IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1Q
YXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1Q
YXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAg
ICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3Qt
PkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJ
IHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBl
bHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERy
YWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9j
dW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VV
UkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBT
dHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAg
IHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJM
U3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0
MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApA
QCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXND
bGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENG
X1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3Rl
cnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0
IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0
LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEg
PSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7
CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAg
ICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVm
N2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9y
dGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mg
c2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAg
di5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwg
Y29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5
ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2
MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5z
dGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0la
RV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFs
dWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVm
ZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4i
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZl
MmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2Ug
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdl
cjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5
N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNF
KElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAg
aWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9B
RERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9Owor
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsK
ICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0
YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5j
bXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRT
dHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAg
ICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0g
bnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lv
biBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2
YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENh
cGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52
YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsK
ICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
NzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAg
ICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09O
IExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEz
ICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlz
dC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGlu
IGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBv
ZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0
Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRh
dGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQog
CkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAg
ICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzgu
MSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNu
ZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRy
PEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0
aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1
dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUg
PSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBh
dXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlz
IGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
IGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBr
ZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFr
ZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNz
aW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmlu
ZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRp
b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9y
aWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9y
aWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwog
ICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVu
dCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsy
MDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9y
aWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50
ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
IngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUs
IElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50
ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICgh
YnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0g
dW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBw
b2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9u
KGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9u
IGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsK
QEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0
ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9
PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6
OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+
PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0
byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBp
ZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlv
blNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikK
ICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJp
ZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9y
Q3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAg
IGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5
cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rp
b24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50
ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlv
bkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
Y3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlv
bkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3
ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0Fy
cmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
c0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBh
MDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYx
OTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtp
dDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0
Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNl
V2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmlu
ZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2Fk
YTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2lu
L1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2
YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJk
NzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBh
YmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcg
KzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9t
YXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0
aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlk
ZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05
MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRp
cmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6
OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19N
QU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VT
U0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3Rz
IikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9S
X1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFk
Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAg
ICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBl
cnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAg
ICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5
dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVh
bQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1
dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAg
U3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJz
LCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlw
ZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51
cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFj
dENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jl
c3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcg
KzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAg
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJW
YWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVh
ZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVz
dEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7Cisg
ICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5h
bWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShz
b3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEs
NyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0Zp
bGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwi
X3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0
X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAg
ICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAg
IGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxl
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJy
b3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdf
SU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+
Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlu
cHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNS
ZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxl
RW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxk
cmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJv
cikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVx
dWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAg
ICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdU
Rk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIy
MWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
ICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3Ii
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
Y2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0
aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGlu
MShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0
KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCmluZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVh
NDdkMDhkYzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMg
aW50IGNyZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAg
ICAgZm9yIChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEw
OyArK3RyaWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVt
b3J5LiIpICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9t
TnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkp
OworICAgICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1l
LnV0ZjgoKTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIw
OTJkYjI3YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTlj
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0
dXJuX2lmX2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVx
dWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCmluZGV4IGEy
MTYzZmQwOTJiNDU0M2NhYTVhNTIwOTFkYjBhMTMzMzExZWM2ODQuLjM1YzI4OTdhYzg4NzNiMTc0
MzFmOWVkNTY3YjIxYzk5YmZiMjNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
QWNjZXNzaWJsZVRleHRJbXBsLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIEhSRVNVTFQgQWNjZXNz
aWJsZVRleHQ6OnNldEF0dHJpYnV0ZXMobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQs
IEJTVFIqIGF0CiAvLyBJQWNjZXNzaWJsZTIKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmdldF9h
dHRyaWJ1dGVzKEJTVFIqIGF0dHJpYnV0ZXMpCiB7Ci0gICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4
dC1tb2RlbDphMSIpOworICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiX3MpOwog
ICAgICphdHRyaWJ1dGVzID0gQlN0cmluZyh0ZXh0KS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNf
T0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdmNTIxZGEwZmRhMjRh
NTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzguLjc3MjRmYjAwMmExYWEyODAzNmIyZjBmYjJjZDA0
ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yMTQ3LDcg
KzIxNDcsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtl
eWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0
b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkgfSk7CisgICAg
YXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4x
KGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlwZSgp
ID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNu
J3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUgaG93IGNvbW1h
bmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVjdXRlZCB2aWEgRWRpdG9yIHNob3VsZCBi
ZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMDAwNWQwMTBkMzViYzZjNThjMTg2OWQxMWFj
NzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQyNDg2MTQ0MDU2Y2U4MzQ4ZjU5NTA5ZjU2ZGU3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0Nyw1IEBAIFN0cmluZyBXZWJEYXRhYmFzZVByb3Zp
ZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKICAgICAgICAgJiYgOjpHZXRMYXN0
RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykKICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFiYXNlRGlyZWN0b3J5KTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1
ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4zNDhkODVhYjk2ZGJiYWZmMWI0ZDZjNzM5MGExMzNl
ZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpm
cm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcDoKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXll
ZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2Uu
bW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVV
UkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbToK
KyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVy
dFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25u
ZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBT
ZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0wNC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01lcmdlLVF1ZXVlXSBDcmVhdGUgc2VwZXJh
dGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0
YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5
NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAg
U3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQi
X3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVY
UEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVF
KGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Ny
b3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgp
LT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUz
LDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsK
LSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAi
MTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VR
KG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsK
QEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlv
bmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxT
dHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07
CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdp
bmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsg
IjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVm
Q291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVt
LmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0
NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZh
dGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBi
b29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURh
dGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9k
ZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBw
ZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3Mp
OwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdi
MDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEw
MTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAg
LTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChp
bnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2Vy
Y2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2Rk
NDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNw
cApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iikp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJh
YmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVp
bGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwg
YnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWls
ZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVu
Z3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIz
NDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5
KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBl
bmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3Ry
ZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5n
KGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIp
OwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIi
LCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAn
QycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1
Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdC
dWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGlu
ZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywg
IiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBi
dWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAg
IEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwog
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVB
QiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgt
Yml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUg
dXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwg
J2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
LCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVY
UEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIs
IFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsx
OTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3Ry
aW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJp
bmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxk
ZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBj
YXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBh
Y2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBT
dHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVu
ZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3Ry
aW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJp
bmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZm
ZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVp
bGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFw
cGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQog
CiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0y
MjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAg
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAg
ICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVp
bGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShz
dHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENo
YW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBy
ZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQo
ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVy
LmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAg
ICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRl
ci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5n
MSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNh
cGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVG
Il9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2
Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5n
QnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAg
YnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkp
OwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJp
bmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1
aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIx
ICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RS
VUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkg
PT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikp
OworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBi
dWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7
CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNp
dHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJp
bmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVy
MSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNU
X1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJp
bmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVp
ZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAg
LTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAg
ICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1
Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEy
MjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQx
ZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3Rh
cnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRF
U1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVF
KHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwog
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
LCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAg
IEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
IikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
U3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNT
RVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIi
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVy
YXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQy
ZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0Miwx
MSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRv
cnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygi
U3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAg
ICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmlu
ZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdW
aWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3
IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5
Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApp
bmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2Jl
ZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3
OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3Rl
cnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFy
YWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAot
ICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVY
UEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxT
RSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRF
U1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29w
SXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBF
WFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFw
aGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBT
dHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAog
ICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNv
ZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0
ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0
cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAg
ICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMo
KTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAg
ICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwg
U3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRF
U1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdW
aWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSku
aXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21M
YXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVND
SUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VS
TC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1
NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNk
ODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0
Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEo
a3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
d3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwog
ICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJs
LnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJs
LnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29y
ZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9u
ZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQ
RUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0K
IAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAs
NDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmlu
ZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8g
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9h
L2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3Ry
aW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1
cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBA
IFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAg
VVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBV
UkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQg
e3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsK
ICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0
VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAg
VVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUx
Nik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIs
ICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJs
MTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFs
MiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3Ms
ICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZh
bDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsi
a2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsg
ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZh
bDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwg
dGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7
Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0
ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7
IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAg
ICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJf
cyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90
ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVz
dCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAg
CiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3Qi
X3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJf
cywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAi
Il9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsg
IiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0
OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBA
QCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZy
b21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIg
fSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBt
YXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAog
ICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRk
NDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEy
NWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9u
RnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9u
IHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBF
Q1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZp
YUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4
IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4
cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
KTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3Ry
OwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRl
cmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJv
bUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJh
bCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9t
TGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAg
VEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVs
bFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0g
ICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0
aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3Ry
aW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIz
MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhw
ZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAg
RVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7Cisg
ICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBA
IC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNU
X0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVY
UEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNl
ZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9E
b3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWls
aW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAg
ICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNl
IGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAK
ICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJp
bmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBz
cGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJu
YW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRp
bmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
KCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0
KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywg
MikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdB
dCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIp
LmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZp
eFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVY
UEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6
ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRG
OCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAg
ICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcx
KCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwo
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0
cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmlu
Z0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkp
CiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMi
X3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJV
RShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4u
YTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNp
bmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0
ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29uc3Qg
Y2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3Ry
aW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21M
YXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsK
ICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFk
NWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDcz
MzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVz
dCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMg
c29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0
b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9y
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsK
K2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUg
Y2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3Mjdm
ZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdlMzY2NGI0NmYz
MTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQ
SGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBc
ImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBT
dHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90
ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpcklu
UXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisg
ICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAor
ICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAg
ICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVT
VChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAg
ICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAg
IFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbElu
UXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAw
MGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVhODA5ZDFjNzNk
NzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29k
aW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmlu
ZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5j
b2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcs
IFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldl
YkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVy
OjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29k
aW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcx
MTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNi
ZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1Ymxp
Y1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0
cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVY
UEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJj
b20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
by51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20i
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4u
dGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51
ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJy
NC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
cjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxE
b21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhh
bVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XD
pMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxl
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBs
ZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhv
c3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0
cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2Uu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAK
aW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUz
MGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBA
QCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYo
c2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkp
OwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIs
IGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAg
ICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNv
cmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3Jk
LnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJh
c2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAg
ICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJm
YzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2Jl
MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRC
dWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
VEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1p
c3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRo
Q29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1
ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01
Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0
aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05P
VF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVu
KEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJp
bmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRh
KCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2Rpbmcu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4u
NGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6
Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygp
LCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQi
X3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVD
MyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JT
dXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJs
YXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBj
aGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsi
aHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9z
LCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3Qv
P3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3Ms
ICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3Qi
X3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5n
VGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
LCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6
Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2du
aXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9z
fSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEi
KSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBT
dHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAn
XDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVt
bGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3Ry
aW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVj
a1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1
OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8v
aG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVz
dC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3
ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFj
a2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
T3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2lu
J3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNl
cyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmlu
ZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5
KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0
YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChk
YXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0
dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERh
dGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAg
IC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9y
bWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0
cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0
b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4g
ZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0
aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4o
Imh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNU
KERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMp
CiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlv
biBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcg
QEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRh
dGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVt
b3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hv
dWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVs
ZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywg
YW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFi
bGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyAr
MzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNl
RG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0
ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3Vs
ZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNl
cyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5k
ZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2
MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBS
ZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxX
TjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgog
ICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5
VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90
STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2
bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7
CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJn
Q0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBA
IC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHky
KCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRj
ckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklp
V20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JB
Q3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkv
aEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dC
L3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBl
bUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjRE
ZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNj
YTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2
ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgy
LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihU
b2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIs
IHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVl
c3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2ln
bmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3Vy
Y2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAs
NyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRv
a2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRh
KCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBT
dHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNy
ZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5n
LmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVu
bGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5n
UGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2Vu
VmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNp
emUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0g
c2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJj
ZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90
b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlv
bl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAz
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0
U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpp
bmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdj
OWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9y
aWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0
IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
Y29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hh
ciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9y
aWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGly
ZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwg
QVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09F
UCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2
ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJj
ZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQv
aHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAg
ICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBz
b3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7
CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0
aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3Ms
ICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmco
ZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0
aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywg
ZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShX
VEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVy
IHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3Bv
bnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3
LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3Vy
Y2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJv
Y2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJj
ZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3Vy
Y2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09F
UCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1As
ICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9u
Q09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9
PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3Jp
Z2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3Rp
bmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNo
b3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmln
aW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1u
b25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
IHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9w
dXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRD
T0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3Vs
ZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNh
dXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRo
ZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNh
dXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1y
ZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9z
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUt
bm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2
MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
ICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAg
ICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0g
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUi
LCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0
ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikg
ewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJD
b250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlz
dFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJp
YWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RS
ZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9u
c2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUx
ODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJh
bWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9p
ZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lG
cmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1
YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxz
Y3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAg
IH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3Njcmlw
dD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNv
cHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNv
cHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4u
OTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpA
QCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlV
UkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAg
ICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2Vu
ZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0
cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAg
ICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2Fu
UGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4u
YTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYs
NyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERP
TUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9j
dW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBb
YW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRl
eCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2
NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
Kil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAog
CiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZy
YW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNz
YWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7
CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFl
NmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENv
bm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIg
fSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkg
fQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAg
ICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1X
ZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAg
ICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyks
IFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMs
NyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAi
cTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJ
c3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1
ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3
QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3
bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9z
KTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNh
dGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0
UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdI
QzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlE
OGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BT
aFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUi
Ci0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJk
YnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVL
ZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZN
b3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJL
aXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAK
aW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcy
MjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9s
bGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rl
ci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsK
IAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVs
bFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJ
bXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcg
YW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07
CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwo
KTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBh
bjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5n
SW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJp
bmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457150</attachid>
            <date>2022-04-08 22:56:45 -0700</date>
            <delta_ts>2022-04-08 23:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408225644.patch</filename>
            <type>text/plain</type>
            <size>191198</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNm
NDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBl
ci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlm
aWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0
cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBT
U0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NM
X2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wq
IHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0
X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShT
U0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVi
bGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZh
ZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNT
dWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwog
ewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRv
bWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlm
IChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihw
c2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07
CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcx
N2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJv
bm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3Ig
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAg
ICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRl
eCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFk
ZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAg
ICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMo
Y29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsg
aXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNv
dXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwot
ICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0
cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4p
IHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9z
dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkp
KSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRh
NTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uZjdmMTZmOWNjMTVmYTcxZGVh
OGE5MDMzMmIxZDFkZjBkMzAxN2RjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
Ojp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0
dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBHRXJyb3IqIGVycm9yKQpAQCAtNjQsMTkgKzY0LDE5IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBf
RVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYw
MmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYzNWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3
MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2Nh
bGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVDb2NvYTo6c2hvcnRNb250aExhYmVscygpCiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVs
cy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhO
YW1lKQotICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRB
cHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQz
NmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFj
ZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgsMTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6
aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAgIERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGln
aXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdldExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNU
SVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24pOwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9
PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjAiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3lt
Ym9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMg
PSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNT
RVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1Nzlk
YjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQy
ZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsK
KyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxl
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhp
c3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9
IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1Q
YXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1Q
YXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAg
ICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3Qt
PkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJ
IHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBl
bHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERy
YWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9j
dW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VV
UkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBT
dHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAg
IHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJM
U3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0
MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApA
QCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXND
bGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENG
X1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3Rl
cnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0
IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0
LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEg
PSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7
CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAg
ICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVm
N2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9y
dGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mg
c2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAg
di5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwg
Y29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5
ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2
MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5z
dGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0la
RV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFs
dWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVm
ZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4i
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZl
MmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2Ug
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdl
cjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5
N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNF
KElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAg
aWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9B
RERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9Owor
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsK
ICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0
YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5j
bXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRT
dHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAg
ICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0g
bnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lv
biBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2
YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENh
cGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52
YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsK
ICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
NzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAg
ICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09O
IExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEz
ICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlz
dC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGlu
IGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBv
ZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0
Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRh
dGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQog
CkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAg
ICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzgu
MSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNu
ZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRy
PEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0
aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1
dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUg
PSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBh
dXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlz
IGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
IGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBr
ZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFr
ZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNz
aW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmlu
ZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRp
b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9y
aWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9y
aWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwog
ICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVu
dCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsy
MDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9y
aWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50
ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
IngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUs
IElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50
ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICgh
YnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0g
dW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBw
b2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9u
KGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9u
IGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsK
QEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0
ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9
PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6
OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+
PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0
byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBp
ZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlv
blNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikK
ICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJp
ZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9y
Q3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAg
IGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5
cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rp
b24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50
ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlv
bkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
Y3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlv
bkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3
ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0Fy
cmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
c0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBh
MDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYx
OTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtp
dDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0
Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNl
V2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmlu
ZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2Fk
YTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2lu
L1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2
YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJk
NzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBh
YmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcg
KzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9t
YXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0
aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlk
ZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05
MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRp
cmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6
OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19N
QU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VT
U0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3Rz
IikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9S
X1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFk
Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAg
ICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBl
cnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAg
ICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5
dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVh
bQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1
dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAg
U3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJz
LCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlw
ZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51
cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFj
dENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jl
c3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcg
KzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAg
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJW
YWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVh
ZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVz
dEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7Cisg
ICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5h
bWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShz
b3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEs
NyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0Zp
bGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwi
X3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0
X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAg
ICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAg
IGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxl
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJy
b3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdf
SU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+
Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlu
cHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNS
ZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxl
RW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxk
cmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJv
cikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVx
dWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAg
ICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdU
Rk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIy
MWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
ICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3Ii
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
Y2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0
aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGlu
MShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0
KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCmluZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVh
NDdkMDhkYzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMg
aW50IGNyZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAg
ICAgZm9yIChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEw
OyArK3RyaWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVt
b3J5LiIpICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9t
TnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkp
OworICAgICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1l
LnV0ZjgoKTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIw
OTJkYjI3YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTlj
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0
dXJuX2lmX2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVx
dWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXgu
Y3BwCmluZGV4IDdmMDBlZmZkZWQ4N2FkODU2MDI4NjdhZDA2OGNkZmRmYmZhOTRjNTguLmQwYjQ5
MDI2MGEwNDVhZjk0YWYxMmY0MDk0ZTc0ODhjZmU2MTdhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRL
ZXlWYWx1ZVBhaXIoV2ViTWVtb3J5U3RhdGlzdGljcyYgc3RhdHMsIGNvbnN0IFN0cmluZyYga2V5
LCBzaXplX3QgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nl
c3NpYmxlVGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRl
eHRJbXBsLmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0
Li4zNWMyODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYs
NyBAQCBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZz
ZXQsIGxvbmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFj
Y2Vzc2libGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdU
Rjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0
ZXh0LW1vZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFz
ZSgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApp
bmRleCA3ZjUyMWRhMGZkYTI0YTU3NDA2ODBhMjQzNzliODJjYjI0MDM0MzM4Li43NzI0ZmIwMDJh
MWFhMjgwMzZiMmYwZmIyY2QwNGQ2MjFiMzUxZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtMjE0Nyw3ICsyMTQ3LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5n
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgp
ICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFt
ZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNv
bW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVu
dCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5k
KFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBp
ZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAg
ICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUg
dG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQg
dmlhIEVkaXRvciBzaG91bGQgYmUgdHJlYXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDAwMDVkMDEw
ZDM1YmM2YzU4YzE4NjlkMTFhYzcxODJmMmM4Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4NjE0NDA1NmNl
ODM0OGY1OTUwOWY1NmRlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0
b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcApAQCAtNDcsNSArNDcsNSBAQCBTdHJp
bmcgV2ViRGF0YWJhc2VQcm92aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpCiAg
ICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkgIT0gRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhkYXRhYmFzZURp
cmVjdG9yeSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkYXRhYmFzZURpcmVjdG9y
eSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYzcyMTMzMTVmYjdiYjdhNWQ4NjRjYTgyOWI5MzNiMTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRi
YmFmZjFiNGQ2YzczOTBhMTMzZWYyMDhiYTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29k
ZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFy
KikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9V
UkwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
TW9uaXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBI
ZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZp
eC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1No
YXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRU
b2tlbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmll
dzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDgg
IEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1R
dWV1ZV0gQ3JlYXRlIHNlcGVyYXRlIHF1ZXVlIGZvciB1bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4
IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0
YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29w
eUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmlu
ZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5
KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigp
KTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyAr
NDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBF
Q1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdp
bmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJp
bmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAg
U3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3Jp
Z2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5h
bCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAg
LTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hh
dmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFs
U3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9
OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
YXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShv
cmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1w
bCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3Jp
Z2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAg
ICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChX
VEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0g
ICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJf
cyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAg
IGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9y
aWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1
ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEy
Miw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlz
c2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZp
bGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6
TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJf
cyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVY
UEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2
ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBi
ZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2Fz
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRl
cik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1
ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4
ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBl
bmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdo
IiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
IycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBi
dWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRD
aGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWls
ZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVu
ZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZ
WiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxk
ZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3Ry
aW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5n
LmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFk
aWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFi
Y2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
IiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7
CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
IiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMi
KSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVw
Y29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0
IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNk
IiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIu
aXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVy
Lmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIs
IGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJC
IiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwog
ICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0
cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0
aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4
Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxl
bmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1
bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwg
YnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAg
IH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEy
MzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1w
bCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2lu
ZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAg
YnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3Ry
aW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0
aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmco
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCku
CiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygx
MCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMi
X3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVp
bGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0
eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VR
KHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgp
KTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQu
CiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9F
UShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9z
KSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQg
b2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7
CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
OwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBF
Q1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgi
REVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNp
dHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEp
OwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1
IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgi
MDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBV
LCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxk
ZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAK
ICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQ
RUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWls
ZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVx
dWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+
KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVY
UEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmco
ImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5y
ZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVp
bGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBi
dWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVp
bGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygp
OyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVz
dCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVy
LmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0
b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hy
aW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMx
NjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNU
KFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAog
VEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9z
KTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAg
QVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAi
dGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAg
ICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5n
KCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3
NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3Jz
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMu
Y3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
KFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOwor
ICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5n
KCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFs
Il9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsK
KyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0
cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1Rf
RVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2Jm
NzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1
LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAg
U3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1Zp
ZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOwor
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1Zp
ZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVD
VF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3
ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAg
ICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJp
bmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygi
aGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgp
KTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAg
LTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBF
Q1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5p
dHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBo
ZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcg
aGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9p
bnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMp
CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50
c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVy
YXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Vi
a2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXco
d2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29k
ZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5
ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNo
ZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7
Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUko
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxB
U0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5p
c0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJf
cykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpm
cm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Z1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1
IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41
NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkp
OwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmlu
ZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhv
c3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBF
WFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3
b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0
bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwg
a3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFs
IiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBr
dXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBh
c3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5w
YXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJs
LnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlm
aWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVu
dElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1
cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJ
SUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5k
UG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3
b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRw
Oi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21l
bnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXgu
aHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9j
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6
Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
YXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RG
X1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9G
KFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9
IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEy
IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVy
bDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBA
IC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJs
NCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAg
ICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsg
eyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3Rv
cjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVy
bDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwg
dXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9
dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7
CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsi
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsi
a2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAg
ICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFs
MiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7
ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7Imtl
eTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9z
IH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIy
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3si
Lz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0s
IHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVy
bDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0i
fSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwg
dGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/
IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVz
dFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAi
Il9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAK
ICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7
CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMy
IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAog
ICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7
CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUy
NiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3
M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBj
Y2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVT
VChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7
Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEi
X3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgi
azMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICBy
ZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJp
bmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjVi
MjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1Qo
V1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4
cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5s
ZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxp
dGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQg
Y29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAi
U3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJh
bCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcg
TGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9t
TGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwi
KSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRl
cmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkp
CkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwp
CiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RG
OjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8i
KTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVY
UEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwog
ICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJp
bmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQog
ICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBl
Y3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRT
dHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21M
YXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVw
bGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1Rv
RG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
VFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAg
ICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJs
ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGlu
ZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0g
ICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAog
ICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBh
bHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdv
aW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
eCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJs
ZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lh
bCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJp
bmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ug
b25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
Im5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3Mp
LnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBT
dHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0
IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhh
c0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5p
czhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdB
dCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9z
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJp
bmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNU
KFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi
5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVY
UEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9G
QUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9z
LCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdF
eGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsK
KyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZB
TFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+
aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmlj
b2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBT
dHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwo
KSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9
IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRi
NzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4
MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRF
eHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7
YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRl
c3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5T
dGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVS
TEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0
YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNl
U3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxc
biJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9r
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3Iu
Y3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVk
OTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
ICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5n
ZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJl
dmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0
IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0
IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2Vk
RGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFz
cyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxk
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1
ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5
ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwi
Il9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAo
KGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0
cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBu
b25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShu
b25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90
ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVv
dGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBA
IC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJh
OiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIp
fSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmlu
Zzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNv
bWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGlu
Zy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZh
NTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUw
LDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29k
aW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVl
KCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVj
b2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUo
dGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldl
YkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsK
IH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3
ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2Uy
OGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNU
X0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVD
VF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2
NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Y29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
c3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51
ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82
NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYw
YW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBF
Q1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0
LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0
cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFp
bikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5F
eGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxI
b3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TD
liIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIu
dGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9j
YWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxh
dGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
Li4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRl
NWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
CkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAg
ICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJr
aXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2Yo
dG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmlu
ZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9
OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsK
KyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAK
ICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1
bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0
NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFl
YjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3Jl
YXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2Zp
bGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50
c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwo
YnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1
ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRo
KCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZl
ci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEo
KSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6
dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBi
dWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0
eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJM
UGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2
NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4
ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwo
dXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAi
JUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9
LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2Rp
bmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGlu
MSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3Bh
Y2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJp
bmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVj
a1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0
eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVS
TFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0
dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEo
U3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJ
U08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4
REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8v
aG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIw
JUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQx
JTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdp
dGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJp
bmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1w
dHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2
OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFi
YXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3Vs
ZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwog
ICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9t
IGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMs
NyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFz
ZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNr
LgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRo
ZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNy
ZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0x
NzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxl
dGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJl
bW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8v
IE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMp
OwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5X
aXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24g
c2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQog
ICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmlu
ZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5
KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJT
UUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0
YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChk
YXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0
dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERh
dGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24g
ZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQK
ICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJv
bSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVE
YXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdo
ZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlz
ay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlv
biBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJk
YzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBA
IC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHky
KCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9a
ZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0Vmxn
Q0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZN
NzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdP
eS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdw
SVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgi
IgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0Jn
VEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0
eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1P
VWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2
WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAg
IkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElq
bjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkv
aEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRl
cyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZp
Y2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmli
dXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4u
NmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5B
bmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAg
ICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBP
U1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJl
cXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5s
aW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJf
cykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFy
dCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFu
ZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBT
dHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9r
ZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDog
U3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBl
bmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBA
IHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5T
aWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9w
dE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVu
Z3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6
IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5m
aW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
Kz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5
ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAog
ZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBE
b1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGlu
YXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVj
dCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZv
aWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlM
aXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0
ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVy
U2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXAp
CiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250
ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAg
ICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmlu
Zyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBT
dHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3Jp
Z2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFk
ZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25D
T09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlv
bkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25D
T09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRp
b25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1F
bWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRl
c3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3Mp
OwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFp
cjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBz
KTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBh
dXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxs
b2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgp
XSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VD
T09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAm
JiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJj
bXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYg
IXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJj
ZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2lu
Il9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0
aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1l
LW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBF
WFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRp
b25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2Fw
OjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEg
QEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VD
T09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1Bv
cHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1
bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNz
aW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAg
Ly8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVj
dCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmln
aW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdl
IGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2Ft
ZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0
Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQ
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZl
LW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2Vi
VmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1
NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcw
MWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBj
b25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShW
ZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25z
ZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXpl
KCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUo
KSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChb
PV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5k
KEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
IH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVu
dC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlz
dFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJl
cXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3Ry
KChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBs
YXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2Jl
ZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3
NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgz
LDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1j
b25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNy
Yz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtd
ID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlk
PSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRp
YyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0
JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFy
IHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChv
cHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRp
YyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkz
MGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0
NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51
Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
Q29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5n
ZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2Fy
ZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10p
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3Ry
aW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdl
YlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVm
NTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3
YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2Fu
UGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdD
YW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxB
bmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAg
IE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5
NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9p
ZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9V
Ukw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1
bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0
aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
UEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3Mp
LCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRh
ZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNk
MmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00Njcs
OSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBn
cmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3Jh
ZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFj
Y2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2Nr
ZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisg
ICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFs
dWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRl
Q29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7
CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RD
ZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlm
enA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempx
d1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJX
OHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUi
Ci0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3
bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92
ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhf
dD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0ty
MGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQ
Y1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRB
aDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2
bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9
PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBh
dXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5
KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1
MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9s
bGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNs
YXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkK
IHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmlu
ZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1w
bCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVt
cHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0g
YW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1
bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lz
dW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcu
aW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgw
Q2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457152</attachid>
            <date>2022-04-08 23:04:01 -0700</date>
            <delta_ts>2022-04-08 23:16:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408230400.patch</filename>
            <type>text/plain</type>
            <size>191986</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09w
ZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNm
NDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBl
ci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlm
aWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0
cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBT
U0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NM
X2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wq
IHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0
X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShT
U0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGlj
U3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVi
bGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZh
ZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNT
dWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwog
ewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRv
bWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlm
IChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihw
c2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07
CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcx
N2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1
cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJv
bm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3Ig
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAg
ICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRl
eCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFk
ZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAg
ICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMo
Y29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsg
aXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNv
dXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwot
ICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0
cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4p
IHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9z
dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkp
KSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRh
NTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uZjdmMTZmOWNjMTVmYTcxZGVh
OGE5MDMzMmIxZDFkZjBkMzAxN2RjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
Ojp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0
dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBHRXJyb3IqIGVycm9yKQpAQCAtNjQsMTkgKzY0LDE5IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKICAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBf
RVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYw
MmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYzNWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3
MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2Nh
bGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVDb2NvYTo6c2hvcnRNb250aExhYmVscygpCiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVs
cy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAgIGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhO
YW1lKQotICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRB
cHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQz
NmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFj
ZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgsMTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6
aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAgIERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGln
aXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdldExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNU
SVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24pOwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9
PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjAiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3lt
Ym9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMg
PSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNT
RVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1Nzlk
YjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMuLmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQy
ZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVS
TChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRh
KHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsK
KyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxl
KTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNl
U3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRV
UkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Q
b2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAvLyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAg
ICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhH
bG9iYWwpKTsKICAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhp
c3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRhdGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9
IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1Q
YXRoKCk7CisgICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1Q
YXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAg
ICAgICAgICBpZiAodGl0bGUpCiAgICAgICAgICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAg
ICAgICAgICAgIH0KQEAgLTUyNyw3ICs1MjcsNyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3Qt
PkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJ
IHRleHQKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2Nr
KHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAg
dGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBl
bHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBib29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERy
YWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9j
dW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBjZmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VV
UkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBzcmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBT
dHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAg
IHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRtbC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJM
U3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0
MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApA
QCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5U
ZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXND
bGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENG
X1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3Rl
cnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0
IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0
YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0
LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2so
Y2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAg
ICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21l
bnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEg
PSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7
CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAg
ICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9T
U0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVm
N2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4u
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9y
dGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mg
c2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAg
di5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwg
Y29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9v
cGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9P
cGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5
ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2
MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5z
dGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0la
RV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFs
dWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVm
ZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4i
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZl
MmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2Ug
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRl
Z3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdl
cjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRy
aXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5
N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
aW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNF
KElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAg
aWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9B
RERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9Owor
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsK
ICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2
ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHBy
aW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcg
eyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwog
ICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBv
cnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJn
ICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0
cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhv
c3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyAr
IGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBj
aGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAg
ICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0
YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5j
bXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNO
dWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRT
dHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAg
ICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0g
bnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lv
biBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9m
IHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAg
IC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2
YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENh
cGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52
YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNh
cGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRp
ZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsK
ICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0
Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAt
NzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAg
ICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09O
IExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBp
bnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEz
ICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vz
c0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlz
dC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRp
ZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxp
ZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29k
ZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGlu
IGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAg
ICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBv
ZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0
Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRh
dGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQog
CkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2Vydmlj
ZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAg
ICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVz
IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21t
YW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0
byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzgu
MSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNu
ZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJl
ciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRy
PEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0
aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFp
bGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpT
T046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1
dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1
c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUg
PSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBh
dXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlz
IGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0g
QWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxp
ZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUn
IG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3Qm
IGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBr
ZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFr
ZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNz
aW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmlu
ZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVw
L2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9
IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRp
b24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
ZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlv
biJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0
aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0
YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0
ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9y
aWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9y
aWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwog
ICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVu
dCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7
IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsy
MDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVj
dCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9y
aWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50
ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBp
cyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
IngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUs
IElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFs
aWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0
IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50
ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2lu
dGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVy
IGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9u
PiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAg
ICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0
b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICgh
YnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRv
bicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0g
dW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlz
IGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBw
b2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9u
KGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9i
amVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25T
dWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9u
IGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBK
U09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5n
ZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFz
TnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFk
ZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJh
bWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQg
Zm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsK
QEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYg
KGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAg
ICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1
ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1l
dGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0
ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJh
bWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2lu
dGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9
PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6
OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0
ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVy
cyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+
PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0
byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBp
ZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlv
blNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikK
ICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3Ig
bWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJp
ZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNl
Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlz
IGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2Uo
U2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9y
Q3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAg
IGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5w
dXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24g
c2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlw
ZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5
cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rp
b24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50
ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlv
bkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAo
IWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVu
Y2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rp
b25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9u
U2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
Y3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlv
bkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNl
cXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsK
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3
ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0Fy
cmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9u
c0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBh
cmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBh
MDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYx
OTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0x
MTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJp
bGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0
Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0g
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtp
dDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0
Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAg
ICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1
dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNl
V2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmlu
ZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2Fk
YTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2lu
L1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsK
LSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBh
YmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGll
cy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2
YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJk
NzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJT
ZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBh
YmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJp
bGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMu
cGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdp
bmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcg
KzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHko
Y29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRD
YXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNh
cGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAg
Y2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9t
YXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0
aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlk
ZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05
MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRp
cmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6
OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19N
QU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VT
U0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3Rz
IikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9S
X1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFk
Q2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAg
ICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBl
cnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAg
ICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgp
LCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5
dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVh
bQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1
dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAg
U3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJz
LCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9t
TGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlw
ZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51
cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFj
dENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jl
c3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcg
KzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAg
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJW
YWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVh
ZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVz
dEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7Cisg
ICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5h
bWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25h
bE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShz
b3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEs
NyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0Zp
bGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwi
X3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0
X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAg
ICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAg
IGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxl
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJy
b3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdf
SU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQ
dHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+
Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1l
c3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlu
cHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNS
ZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxl
RW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxk
cmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJv
cikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVx
dWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAg
ICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdU
Rk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIy
MWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
ICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3Ii
LCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0
aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
Y2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0
aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGlu
MShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0
KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVI
YW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCmluZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVh
NDdkMDhkYzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMg
aW50IGNyZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAg
ICAgZm9yIChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEw
OyArK3RyaWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVt
b3J5LiIpICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9t
TnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkp
OworICAgICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1l
LnV0ZjgoKTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIw
OTJkYjI3YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTlj
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJl
cXVlc3QuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0
dXJuX2lmX2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAg
IFVSTCB1cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVx
dWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXgu
Y3BwCmluZGV4IDdmMDBlZmZkZWQ4N2FkODU2MDI4NjdhZDA2OGNkZmRmYmZhOTRjNTguLmQwYjQ5
MDI2MGEwNDVhZjk0YWYxMmY0MDk0ZTc0ODhjZmU2MTdhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRL
ZXlWYWx1ZVBhaXIoV2ViTWVtb3J5U3RhdGlzdGljcyYgc3RhdHMsIGNvbnN0IFN0cmluZyYga2V5
LCBzaXplX3QgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgz
NGVlN2MxMTFjZmVkYjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3
ZjNjNjkxNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0
UHJvdG9jb2xIYW5kbGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCog
Y29udGV4dCkKIAogdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVS
TChTdHJpbmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7
CisgICAgVVJMIHJlcXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhv
c3QoKSA9PSAiZ3B1IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3Bw
CmluZGV4IGEyMTYzZmQwOTJiNDU0M2NhYTVhNTIwOTFkYjBhMTMzMzExZWM2ODQuLjM1YzI4OTdh
Yzg4NzNiMTc0MzFmOWVkNTY3YjIxYzk5YmZiMjNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIEhSRVNV
TFQgQWNjZXNzaWJsZVRleHQ6OnNldEF0dHJpYnV0ZXMobG9uZyBzdGFydE9mZnNldCwgbG9uZyBl
bmRPZmZzZXQsIEJTVFIqIGF0CiAvLyBJQWNjZXNzaWJsZTIKIEhSRVNVTFQgQWNjZXNzaWJsZVRl
eHQ6OmdldF9hdHRyaWJ1dGVzKEJTVFIqIGF0dHJpYnV0ZXMpCiB7Ci0gICAgV1RGOjpTdHJpbmcg
dGV4dCgidGV4dC1tb2RlbDphMSIpOworICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6
YTEiX3MpOwogICAgICphdHRyaWJ1dGVzID0gQlN0cmluZyh0ZXh0KS5yZWxlYXNlKCk7CiAgICAg
cmV0dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdmNTIx
ZGEwZmRhMjRhNTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzguLjc3MjRmYjAwMmExYWEyODAzNmIy
ZjBmYjJjZDA0ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBA
IC0yMTQ3LDcgKzIxNDcsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnRO
YW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZy
YW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkg
fSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpm
cm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVu
dC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2Vi
S2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUg
aG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVjdXRlZCB2aWEgRWRpdG9y
IHNob3VsZCBiZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
c3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMDAwNWQwMTBkMzViYzZjNThj
MTg2OWQxMWFjNzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQyNDg2MTQ0MDU2Y2U4MzQ4ZjU5NTA5
ZjU2ZGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdl
L1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0Nyw1IEBAIFN0cmluZyBXZWJEYXRh
YmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKICAgICAgICAgJiYg
OjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykKICAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFiYXNlRGlyZWN0b3J5KTsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzIxMzMx
NWZiN2JiN2E1ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4zNDhkODVhYjk2ZGJiYWZmMWI0ZDZj
NzM5MGExMzNlZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8g
U3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVT
eXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJh
dG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Rf
Rik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNw
cDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxk
LmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVy
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
aGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3
Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxD
cmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0wNC0wOCAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01lcmdlLVF1ZXVlXSBDcmVh
dGUgc2VwZXJhdGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4
YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJh
YjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcp
CiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwp
OwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEy
MzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNv
cHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgp
KTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0
cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3
b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3Jp
Z2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9Owog
ICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAg
RVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMs
NyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVm
KQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7
Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkg
PSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09u
ZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJW
T3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsg
IjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3Mg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9O
VUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcg
c3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmlt
cGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2
NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3
IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkK
IHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFw
cGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxl
RGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNF
KHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVj
NTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4
ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
aW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIs
IDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRi
OWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4
MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERl
ZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
CiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMo
IiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9z
LCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsK
ICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVp
bGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWls
ZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2
ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAg
c3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSks
IGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkK
IHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAn
QycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFC
QyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmco
JmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9z
KSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRo
ZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRo
ZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIi
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxk
ZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJj
ZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7
CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkg
KyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUs
ICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5
ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRl
ciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0
eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAg
ICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAz
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAt
MTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7
CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxk
ZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJp
bmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50
IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0
cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJp
bmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
X3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmlu
ZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFj
aXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRl
ci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5
LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgo
KSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcp
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJp
bmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3Ry
aW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJp
bmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQ
RUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJp
bmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwg
c3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAt
MjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hh
cmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1Us
IGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Iiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpA
QCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAg
RVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmlu
ZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7
CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBh
Y2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNl
cnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9
PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0g
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3Qg
YWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21T
dHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIx
MjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXgg
YTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1
ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJp
bmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwg
U3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5n
KCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVz
dCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFM
U0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIp
KTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7
CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
T3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUx
MWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQy
LDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJp
bmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5n
IHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJp
bmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAot
ICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmlu
ZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBz
dHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZT
dHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5i
YWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3
IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHko
KTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5n
IHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0
aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmll
d1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NF
RUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8i
KSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykp
OwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVY
UEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0
MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNv
bXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0p
KTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1w
dHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8i
KTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyho
ZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAg
LTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3Ig
PSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcp
OwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtp
dCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNv
ZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJl
Z2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBU
RVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3Rl
cnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUko
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxB
U0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEo
IvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJp
bmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVF
KFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkp
LmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmlu
ZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQz
MTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1
Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBF
WFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3Ry
aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4
MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFt
ZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3Vy
bC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJs
LnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5x
dWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25l
bnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7
CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmll
cigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5n
KQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1
cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewog
ICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRt
bD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
YXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxE
YXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJM
KCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkx
Il9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyAr
Mzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAg
ICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9z
KTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkx
PXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZl
Y3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwx
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVy
bDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJs
MTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAg
ICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1
MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0
VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIg
e3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwy
Il9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAg
ICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
JmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZh
bDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAi
Il9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsg
ImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJs
MTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFs
MSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2
YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwz
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5
MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTks
IHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAi
dGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywg
IiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwg
dXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0
ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQ
RUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9y
MjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7
IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcy
OCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9z
IH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1
cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwg
dXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8i
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
MTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVy
bDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwg
dXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5
NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVh
MDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5
ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0
b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsK
LSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAu
c2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmlu
ZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9z
KTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYz
Il9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWly
LnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3Ry
aW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5k
ZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3
NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmlu
Z0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29u
c3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsK
ICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFT
Q0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0
ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmlu
Z0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwg
c3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlz
OEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcg
KzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBT
dHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUo
c3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpz
dHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5n
OwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0
cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBl
Y3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExp
dGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAg
ICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsK
IAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWls
IGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIg
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdu
b3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFy
YW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0
dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3Vi
bGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVD
VF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBz
dWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Iiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJl
cnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUo
Jm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVz
dCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmco
InN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFy
dGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJf
cykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAg
RVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywg
MikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4
U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVU
RjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJp
bmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkp
OwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRl
IiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
Ojpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFz
aCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmlu
ZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5n
MS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkp
OwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChX
VEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVD
aGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJp
bmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdi
JyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0Yzhl
YzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAg
ICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5T
dGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhm
ZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXgg
OWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDli
MDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZv
ciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEo
IlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZp
bGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25p
dG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXgg
NzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdl
MzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAg
VEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAg
ICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAot
ICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9u
QVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVv
dGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29t
bWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNv
bW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5R
dW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1
LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3Ms
CiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3Ms
Ci0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0
aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRl
eCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVh
ODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNU
KEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFu
ZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6
OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNv
ZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxl
VmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5
ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNU
KEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4
ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZj
YmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNT
dWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmlu
Zyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkp
OwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihT
dHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20u
Y29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4u
dGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3
LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3
LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRh
LnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEu
dHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJp
bmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJy
NC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2Rm
LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGly
ZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNv
bSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxv
Y2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21h
aW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOk
w7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQ
RUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNo
RGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4u
YTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4
ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAg
c25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVz
dC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0
b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUg
fTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAg
ICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAg
ICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAg
ICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJm
NzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1
ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwog
fQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwg
Y3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAg
QVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkg
PT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgp
KSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6
ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91
cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0
RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMy
ZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNv
ZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNl
clRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmlu
Zyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAl
OUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDov
L2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJz
VmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEo
U3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEi
KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZs
YXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRw
Oi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCks
ICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0
cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4
dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Qv
P3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywg
JnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8v
aG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklT
Ty04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEi
KTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAs
IDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/
Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5
U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3Ms
IGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsK
ICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMp
LCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygp
LCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VU
cmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlk
MjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2Vy
VGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0
YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0
aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5k
IERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBA
QCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4
aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgs
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFi
YXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBp
bmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0
YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQs
NyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5n
RW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3Rp
bGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0
YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwi
KTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4
U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNr
ZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3
ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRl
ciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZy
b20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRh
YmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06
OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBk
YXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1
cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBA
IC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hl
bkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5
IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8v
IFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhl
IERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQz
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hh
bGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3
NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsx
NDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJt
aUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95
aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lN
Rk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0Jv
VVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmpt
VEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2
YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1J
SUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFV
RUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0
SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1s
TUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6
alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1
cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIK
LSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1Jr
djlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0
RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMg
PSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpp
bmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgw
MmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0y
ODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNy
ZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAv
MS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6
ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rv
a2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMy
MCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3Jl
dFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1
ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQ
YXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVl
c3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZv
aWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0
eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5W
ZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVu
Z3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9
IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5k
YmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNz
IElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lk
ZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAs
IElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVy
U2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291
cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3Rp
bmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1
c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNP
T1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3Vy
Y2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRk
ZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50
LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAg
ICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9z
LCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAg
IGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsK
KyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBv
bGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25S
ZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBI
VFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywg
SFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQy
Nyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBj
aGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAg
IGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBi
b29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0
cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAo
c291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5h
dGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRl
c3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291
cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRC
ZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9z
ICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVF
KHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMg
dm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0
IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0s
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwg
eyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVw
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
bkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAg
IC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4K
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBi
ZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEg
c3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBh
bmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJl
ZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
InJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJW
aWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2Fi
MTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2
aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24p
IHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250
ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsK
KyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5
cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewog
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8
Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3Bv
bnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRl
bnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3Ms
ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2Ny
aXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNo
YXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0
LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1Njdm
NzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2Zi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDgg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIg
cGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUu
aHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1l
JyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1
dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVb
XSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIK
ICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3
ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJM
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29w
eVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVu
dUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsK
ICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3Rl
Ym9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBh
YnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQo
KSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1
YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJM
KQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1l
bnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcg
KnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNh
ZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFz
aC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwg
KilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJh
bWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0
cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyht
ZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMw
ZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBA
QCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndl
YnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAg
ICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUo
cmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAor
ICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0
KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVu
Z3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYz
Myw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRl
KCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VV
K3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0
alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcv
VysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3Zq
WkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4
TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERl
Y29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVk
Q2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2Vy
dmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5
L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkx
c3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAg
ImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNn
dGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAg
InFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2Rl
ZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJl
dHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRi
L2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIv
bWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4u
YzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9v
bHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBs
ZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0
cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAg
ICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAg
ICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcg
eyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3Ry
aW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07Cisg
ICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAg
ICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAK
ICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5v
XHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457153</attachid>
            <date>2022-04-08 23:16:28 -0700</date>
            <delta_ts>2022-04-08 23:26:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408231627.patch</filename>
            <type>text/plain</type>
            <size>207094</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDRmODlkOTczZWM5
MTFhNWQ5MDlkZGQ3ZTJlYmE5N2E1ZDRmYmNiMGYuLmEzYmU4YmU4MzI5MzIwYTU2ZmFlNDIwNWZh
OWJhOWVjMzhlYzg1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgc3RhdGljIFN0cmluZyBkZWZhdWx0Q29va2llSmFyUGF0aCgpCiAgICAg
cmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChGaWxlU3lzdGVtOjps
b2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgZGVmYXVsdEZpbGVOYW1lKTsKICNl
bHNlCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTI0MTcKLSAgICByZXR1cm4gU3RyaW5nIHsgZGVmYXVsdEZpbGVOYW1lIH07CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkZWZhdWx0RmlsZU5hbWUpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcAppbmRleCBkMzliNjViNDQwZThmMmJiMTk1NGU2YzYwYTNlODkyM2IzZjQ2YWI2Li5k
M2VlMDdjMWVhMjJjZWExNzhmMTdjMGVkYjM1MzAyZjYxMGVjMWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCkBA
IC0zNDAsMTIgKzM0MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlU3Vt
bWFyeT4gY3JlYXRlU3VtbWFyeUluZm8oY29uc3QgVmVjdG9yPHVpbnQ4XwogCiBTdHJpbmcgdGxz
VmVyc2lvbihjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX2dldF92
ZXJzaW9uKHNzbCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9nZXRfdmVy
c2lvbihzc2wpKTsKIH0KIAogU3RyaW5nIHRsc0NpcGhlck5hbWUoY29uc3QgU1NMKiBzc2wpCiB7
Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9DSVBIRVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50
X2NpcGhlcihzc2wpKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX0NJUEhF
Ul9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZp
eEN1cmwuY3BwCmluZGV4IGVmODk2MjI0ZmEwN2FhNWZkYTFmYTgyYThiY2NmMWY2YWQ3NzMwNTcu
LmQyZGUwZGQxZTlkZmMxMDVlMmM3N2NkZTllNzFhMWJiNDcxODMzM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3Vy
bC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFN0cmluZyB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluSW50ZXJuYWwoY29uc3QgcHNsX2N0eF90KiBwc2wsIGNvbnN0IGMKIHsKICAgICAv
LyBwc2xfcmVnaXN0ZXJhYmxlX2RvbWFpbiByZXR1cm5zIGEgcG9pbnRlciB0byBkb21haW4ncyBk
YXRhIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gcHJpdmF0ZSBkb21haW4KICAgICBpZiAoY29uc3Qg
Y2hhciogdG9wUHJpdmF0ZURvbWFpbiA9IHBzbF9yZWdpc3RyYWJsZV9kb21haW4ocHNsLCBkb21h
aW4pKQotICAgICAgICByZXR1cm4gU3RyaW5nIHsgdG9wUHJpdmF0ZURvbWFpbiB9OworICAgICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcFByaXZhdGVEb21haW4pOwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcApp
bmRleCA1NzIwZTI0ZGY4YTAwYWZlN2E5YjE4ZDA0YjIwMjQ0ZTU5MTFjMWNmLi43MTdlYmRkMWJj
NjA5YTcxM2FmMTNkNTVhMDZlMGJiMDAxNjIwNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnRDdXJsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZXNvdXJjZUVycm9yIFN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybUJhZFJlc3BvbnNlRXJyb3IoKQogewogICAgIGludCBl
cnJvckNvZGUgPSAwOwogICAgIFVSTCBmYWlsaW5nVVJMOwotICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSIpOworICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSJfcyk7CiAKICAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcigiQ1VSTCJfcywgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlw
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggYThkMjM3
MDY0OGQyNDY4ODEyY2U1YjZmOTUzOWFhYjA5NjJlODZiYy4uNmUwYTNkYzdhYzVhZGYyMmY1NTNm
ODExMTM2MzNhMTM1YWU5MjcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNw
cApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29r
aWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpCiAgICAgR1VuaXF1
ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2FsbF9jb29raWVzKGNvb2tpZVN0
b3JhZ2UoKSkpOwogICAgIGZvciAoYXV0byogaXRlbSA9IGNvb2tpZXMuZ2V0KCk7IGl0ZW07IGl0
ZW0gPSBnX3NsaXN0X25leHQoaXRlbSkpIHsKICAgICAgICAgR1VuaXF1ZVB0cjxTb3VwQ29va2ll
PiBjb29raWUoc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KGl0ZW0tPmRhdGEpKTsKLSAgICAgICAg
aWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChTdHJpbmcgeyBz
b3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkgfSkgPT0gZG9tYWluKSB7CisgICAg
ICAgIGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5n
Ojpmcm9tTGF0aW4xKHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSkpID09IGRv
bWFpbikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCmluZGV4IDM0YTU3ZTVjMmMy
ZWI2OTg5N2E1NzNhZTQwMzJiMjMxYjk5OTNjMWQuLmNiYWJjMDE5MjYyNDBkMTE1NmYzODI2ODc2
MDA0MDVkOWM3ZGFmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dHJhbnNw
b3J0RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3Ry
aW5nJiByZWFzb25QaHJhc2UpCiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikgfSwgc3RhdHVzQ29kZSwg
ZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikp
LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOwogfQogCiBSZXNvdXJjZUVy
cm9yIFJlc291cmNlRXJyb3I6Omh0dHBFcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSwgR0Vycm9y
KiBlcnJvcikKQEAgLTYxLDIyICs2MSwyMiBAQCBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6
OmF1dGhlbnRpY2F0aW9uRXJyb3IoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KG1lc3NhZ2UpOwogI2lmIFVTRShTT1VQMikKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBtZXNzYWdl
LT5zdGF0dXNfY29kZSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRp
bjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikpLCBtZXNzYWdlLT5z
dGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRvVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1l
c3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxz
ZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNP
VVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNzYWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3Ry
aW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3VwX21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdl
KSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVU
Rjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0K
IAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwg
ZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVy
cm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNpZ25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZp
Y2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExTX0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURf
Q0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOwor
ICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFy
a190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19UTFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBm
YWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVy
cm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlm
aWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVybiByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2Vk
ZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDllNTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6
dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFk
ZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFs
dWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0
ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVs
ZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAg
IG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6
ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2
ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdlYjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
U291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNw
b25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9
CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1l
c3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRf
cmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2Fn
ZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBzb3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2Nl
cnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBtX3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9n
ZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3JzKHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2
LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAg
ICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29u
ZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250
ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9N
T0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUgIT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBj
b250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRDb250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAg
ICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRh
dGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFs
VHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lh
bFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlwZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVz
Q29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1J
TUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3Vw
TWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNo
YXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVh
ZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJW
YWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhl
YWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlm
aWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYwMmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYz
NWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3
IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVDb2NvYTo6c2hvcnRNb250aExhYmVscygp
CiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVscy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAg
IGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhOYW1lKQotICAgICAgICBtX3Nob3J0TW9udGhM
YWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAg
IG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1f
c2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQzNmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5
YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFjZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgs
MTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAg
IERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGlnaXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdl
dExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNUSVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24p
OwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiX3MpOworICAgICAgICBz
eW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAg
ICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJf
cyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMgPSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FM
RV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNTRVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRp
ZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMu
LmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBA
IC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwg
RHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYg
KFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewog
ICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0
cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpA
QCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAv
LyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChk
YXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRh
dGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVt
UGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJs
ID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRh
KSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAg
ICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1Mjcs
NyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0g
ZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCks
ICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9
IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAg
dGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShk
YXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxl
YXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBi
b29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBj
Zmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6
Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRt
bC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9
IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0
Q291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRl
ci5jcHAKaW5kZXggYjc2NDkxZDc2Njg3NTk2ZmE1NDZiZDdlODBmNWUxOGE0YTE3NTVjYi4uMDgw
MTE1Y2VlMTdlN2EzNTZhNjE1OTZkYTI2YzU1M2EzMDlmNzQ0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcApAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEdESU9iamVjdENvdW50ZXI6OkdESU9iamVjdENvdW50
ZXIoY29uc3QgY2hhciogaWRlbnRpZmllcikKIHsKLSAgICBpbml0KFN0cmluZyB7IGlkZW50aWZp
ZXIgfSk7CisgICAgaW5pdChTdHJpbmc6OmZyb21MYXRpbjEoaWRlbnRpZmllcikpOwogfQogCiBH
RElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3VudGVyKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1l
LCB2b2lkKiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4YmNmZjhkNTZk
Li40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAsNyArODQwLDcg
QEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQsIFBsYWlu
VGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2
YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKICAgICAgICAg
aWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBMYXRpbi0xLCBu
b3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJpZ2h0IGVuY29k
aW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZzo6
ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSk7CiAgICAg
ICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSYgZnJhbWUs
IGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJk
RGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAgICAgICAgICAg
ICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKTsK
LSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgYXV0
byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAgICAgICBHbG9i
YWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgc3Ry
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0
b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldp
bi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRhNzE5NS4uMjJl
NzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0
b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQgYmUgbG9jYWxp
emFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVuZCgiSGlnaCBH
cmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmco
dW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBVUkwmIHVybCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGls
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKaW5k
ZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNhYTlkMi4uMzEzYzMyYTkzNmQ5
MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcgKzYwLDcgQEAgaW5saW5lIFN0
cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkK
ICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKICAgICBYclJlc3Vs
dCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKICAg
ICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVy
KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgIHJldHVy
biBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5i
OTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5j
cHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpw
YWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVz
KCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9y
bWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNl
cnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIu
Ljg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZl
ci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2Vy
dmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tF
VF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciog
dGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0
cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9y
IChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9
IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVu
dChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3Ry
bmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwo
KSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9y
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYg
IWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7
CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5n
dGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEz
IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAg
ICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9
IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdl
dD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAg
ICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAg
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3Ry
TGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2
Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0
ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lv
bi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVz
ZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNz
aW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBo
YW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3
MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0Nh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1
aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5
IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVj
dDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVx
dWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlz
TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRo
ZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50
IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlk
YXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWly
ZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMi
X3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAg
VmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xp
c3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYg
KCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBh
bGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVy
cm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJp
bGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
Zmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRj
aENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2Jq
ZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBm
b3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykp
KTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBM
ZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxp
ZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMu
CiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMo
KmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmls
aXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52
YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEs
NyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2Fw
YWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVh
dGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVj
dD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAg
aWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNz
aW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBA
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RU
b0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5v
dENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5
MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0
U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rp
b24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNz
aW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUs
NyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlw
ZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBp
cyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFj
dGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBt
aXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9k
b3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAg
ICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlm
IChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsK
KyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUn
IGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5n
bGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZh
bHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBk
dXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2Jq
ZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRT
dHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAo
IWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4g
YWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6
VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMg
Ym9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVy
IikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50
ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVy
TW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAg
ICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAg
ICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAg
ICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24u
eCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
b2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9u
LCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsK
ICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7
CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9p
bnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAg
ICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFs
aWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwx
MiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVy
QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpT
dWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24n
IGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZv
ciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpi
dXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9p
bnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkp
OwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2Ug
aWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246
OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdo
ZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgi
X3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpk
ZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1
ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8g
ZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAg
ICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOwor
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVs
dGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0g
ZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVj
dCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFz
T2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpT
T046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAg
ICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRl
clR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJU
eXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkw
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFj
dGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNl
ID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVu
Y2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNl
IGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
YWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNv
dXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9y
IG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlv
biBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAg
ICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAo
IWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQn
IGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNz
aW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9u
CiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJj
ZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNl
LnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRv
ZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJj
ZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlw
ZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25T
ZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBp
cyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQg
b3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9u
JiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+
YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24g
aW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJz
LT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5v
dCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJE
cml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWVi
YmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYx
ZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZp
Y2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0
KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygp
CiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxh
dGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5h
bWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9
IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBi
b29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
UGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVz
LCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5i
cm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RL
X0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9Owog
ICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNl
L1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1
ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJh
ZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVy
U2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0
aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
d3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5
MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQw
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENh
cGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAg
ICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNl
OwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBj
b25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNl
Q2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJv
d3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAg
ICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3
cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDFmMGI3ZTRlOTll
Y2QzMGQ4NWViNjU2Mjg4YjU2M2Q0MjM5MGNkNzguLjMwOWRhYzA3OWRkMjg3Yjg0MWE4MjAxNzNi
NTc0Yzc1OGU1MDlmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTkzMSw3ICs5MzEsNyBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKCkKICNpZiBV
U0UoU09VUDIpCiAgICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6dHJhbnNwb3J0RXJyb3Io
bV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU09VUF9TVEFUVVNfVE9PX01BTllfUkVESVJFQ1RTLCAi
VG9vIG1hbnkgcmVkaXJlY3RzIl9zKSk7CiAjZWxzZQotICAgICAgICBkaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBT
T1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJFQ1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVy
bCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSByZWRpcmVjdHMiKSkpOworICAgICAgICBk
aWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5n
KFNPVVBfU0VTU0lPTl9FUlJPUikpLCBTT1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJF
Q1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSBy
ZWRpcmVjdHMiKSkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDM3LDcg
KzEwMzcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlYWRDYWxsYmFjayhHSW5wdXRT
dHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqCiAgICAgICAgIGlmICh0YXNrLT5tX3Nv
dXBNZXNzYWdlKQogICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yOjpnZW5l
cmljR0Vycm9yKHRhc2stPm1fY3VycmVudFJlcXVlc3QudXJsKCksIGVycm9yLmdldCgpKSk7CiAg
ICAgICAgIGVsc2UgaWYgKHRhc2stPm1fZmlsZSkKLSAgICAgICAgICAgIHRhc2stPmRpZEZhaWwo
UmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9
LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVU
RjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4p
KSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0gZWxzZSBpZiAoYnl0ZXNSZWFkID4gMCkKQEAg
LTExMjcsNyArMTEyNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVxdWVzdE5l
eHRQYXJ0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmIGlucHV0U3RyZWFtCiAgICAgQVNTRVJUKCFt
X2lucHV0U3RyZWFtKTsKICAgICBtX2lucHV0U3RyZWFtID0gV1RGTW92ZShpbnB1dFN0cmVhbSk7
CiAgICAgYXV0byogaGVhZGVycyA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVhbV9nZXRfaGVh
ZGVycyhtX211bHRpcGFydElucHV0U3RyZWFtLmdldCgpKTsKLSAgICBTdHJpbmcgY29udGVudFR5
cGUgeyBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50LVR5cGUi
KSB9OworICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwogICAgIG1fcmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKG1fZmlyc3RSZXF1ZXN0LnVybCgpLCBleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpLCBleHRyYWN0Q2hhcnNldEZyb21NZWRp
YVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgIG1fcmVzcG9uc2UudXBkYXRlRnJv
bVNvdXBNZXNzYWdlSGVhZGVycyhoZWFkZXJzKTsKQEAgLTEyNDksNyArMTI0OSw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAgICAgICAgIGNvbnN0IGNoYXIq
IGhlYWRlck5hbWU7CiAgICAgICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3Ry
aW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKKyAgICAgICAgICAgIHJlcXVl
c3RIZWFkZXJzLnNldChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJv
bUxhdGluMShoZWFkZXJWYWx1ZSkpOwogICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5yZXF1ZXN0
SGVhZGVycyA9IFdURk1vdmUocmVxdWVzdEhlYWRlcnMpOwogCiAgICAgICAgIGFkZGl0aW9uYWxN
ZXRyaWNzLnByaW9yaXR5ID0gdG9OZXR3b3JrTG9hZFByaW9yaXR5KHNvdXBfbWVzc2FnZV9nZXRf
cHJpb3JpdHkobV9zb3VwTWVzc2FnZS5nZXQoKSkpOwpAQCAtMTY5MSw3ICsxNjkxLDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRGaWxlSW5mbyhHRmlsZUluZm8qIGluZm8pCiAg
ICAgICAgIG1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoInRleHQvaHRtbCJfcyk7CiAgICAgICAgIG1f
cmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKC0xKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBTdHJpbmcgY29udGVudFR5cGUgeyBnX2ZpbGVfaW5mb19nZXRfY29udGVudF90eXBlKGlu
Zm8pIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ19m
aWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShpbmZvKSk7CiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0
TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAg
ICAgICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgaWYgKG1fcmVzcG9uc2Uu
bWltZVR5cGUoKS5pc0VtcHR5KCkpCkBAIC0xNzE5LDcgKzE3MTksNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza1NvdXA6OnJlYWRGaWxlQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBOZQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRy
PEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19JTlBVVF9TVFJFQU0oZ19m
aWxlX3JlYWRfZmluaXNoKGZpbGUsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSkpOwogICAgIGlm
IChlcnJvcikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2Zp
cnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAg
ICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0
UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBl
bHNlCiAgICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKFdURk1vdmUoaW5wdXRTdHJlYW0pKTsKIH0K
QEAgLTE3NDMsNyArMTc0Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZW51bWVyYXRl
RmlsZUNoaWxkcmVuQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsCiAgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQdHI8R0ZpbGVFbnVtZXJhdG9yPiBlbnVt
ZXJhdG9yID0gYWRvcHRHUmVmKGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fZmluaXNoKGZpbGUs
IHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKQotICAgICAgICB0YXNr
LT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3It
PmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJp
bmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICB0YXNrLT5kaWRGYWlsKFJl
c291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5k
b21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6
OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAgdGFzay0+ZGlk
UmVhZEZpbGUod2Via2l0RGlyZWN0b3J5SW5wdXRTdHJlYW1OZXcoV1RGTW92ZShlbnVtZXJhdG9y
KSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcAppbmRleCA5N2YwOTg1NGNmNWUzZTI4ZmUwMmViY2Y5MjIxYjM1ZGIyZTA5YWI2Li42
ZWVjMzcyZmNmNTU2MjFkNDUzNTgyMjQwNWQ0NmMwNGUzYWYwMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAK
QEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0
cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJlcnJvciIsIHJlaW50ZXJwcmV0X2Nh
c3Q8R0NhbGxiYWNrPihkaWRSZWNlaXZlRXJyb3JDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJjbG9zZWQiLCByZWludGVy
cHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayksIHRoaXMpOwogCi0gICAgbV9j
aGFubmVsLmRpZENvbm5lY3QoU3RyaW5nIHsgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf
cHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSB9LCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7Cisg
ICAgbV9jaGFubmVsLmRpZENvbm5lY3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkpLCBhY2NlcHRlZEV4
dGVuc2lvbnMoKSk7CiAKICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSk7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29u
bmVjdF9ieV9kYXRhKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA4YmU1ZTY2ODY1OTBhNzYx
Mzc0ZDU5YWQzODdkODZiZmJhZmJiMjY4Li5hNzA2NTQwNTdiY2YwY2MxY2FmMTE4OWU0OTAwYzBk
ZWE3MzQwNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2lu
Z1VuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgbG9nTGV2ZWxT
dHJpbmcoKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICByZXR1cm4gU3RyaW5nIHsgZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSk7CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmlu
ZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVhNDdkMDhk
YzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdD
b25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMgaW50IGNy
ZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAgICAgZm9y
IChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEwOyArK3Ry
aWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIp
ICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9tTnVtYmVy
KCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpOworICAg
ICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8
dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1lLnV0Zjgo
KTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Z2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIwOTJkYjI3
YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTljZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShX
ZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0dXJuX2lm
X2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgIFVSTCB1
cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVxdWVzdC0+
cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCmlu
ZGV4IDdmMDBlZmZkZWQ4N2FkODU2MDI4NjdhZDA2OGNkZmRmYmZhOTRjNTguLmQwYjQ5MDI2MGEw
NDVhZjk0YWYxMmY0MDk0ZTc0ODhjZmU2MTdhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApAQCAtNjYsNyArNjYsNyBA
QCBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tTGF0aW4xKGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRLZXlWYWx1
ZVBhaXIoV2ViTWVtb3J5U3RhdGlzdGljcyYgc3RhdHMsIGNvbnN0IFN0cmluZyYga2V5LCBzaXpl
X3QgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2Mx
MTFjZmVkYjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkx
NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9j
b2xIYW5kbGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCkKIAogdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJp
bmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAg
VVJMIHJlcXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9
PSAiZ3B1IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQz
Y2VmMjNiMjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0s
IEdBc3luYwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNw
b25zZS5nZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcg
Y29udGVudFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3Ap
LmRhdGEoKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAg
ICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJs
KCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAg
ICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3Rh
dHVzTWVzc2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNw
KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAg
ICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQ
U3RhdHVzVGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNz
YWdlLmRhdGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVn
aXN0cnk6Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtMzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJp
di0+cmVzcG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJv
cihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dl
YkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBs
ZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdENvbG9yLmNwcAppbmRleCAyMmZjMGE4ZGZiMDhlYjJhZGI0MGI5MGM1YjMxNDM2
YWVlMjljYzFmLi4yMjc1ZDc0ODVjMTI0YzdmMzE0NGU2NTg4MzU1NDVmODg4NGZjMDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcApAQCAt
MTA5LDcgKzEwOSw3IEBAIGdib29sZWFuIHdlYmtpdF9jb2xvcl9wYXJzZShXZWJLaXRDb2xvciog
Y29sb3IsIGNvbnN0IGdjaGFyKiBjb2xvclN0cmluZykKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChjb2xvciwgRkFMU0UpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yU3RyaW5nLCBG
QUxTRSk7CiAKLSAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VDb2xvcldpdGhvdXRDb250ZXh0KFN0cmluZyB7IGNvbG9yU3RyaW5nIH0pOworICAgIGF1dG8g
d2ViQ29yZUNvbG9yID0gV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRl
eHQoU3RyaW5nOjpmcm9tTGF0aW4xKGNvbG9yU3RyaW5nKSk7CiAgICAgaWYgKCF3ZWJDb3JlQ29s
b3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCA5MzMyMzJl
MmY2ODRlZDNjMmIzNWVlODIwMGMwYzY3OTgzZGVkYmY3Li40ZWUzYTViMDAzYmQwZmMzYzU1NTZj
NTU3YTdhN2NmOGQzZmZhZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
bGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2Vz
cykgewogICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQQzo6
QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAgICAgIHBhcmFtZXRlcnMu
aW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGli
cmFyeV9uYW1lKCkgfSk7CisgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5
TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21M
YXRpbjEod3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgp
KSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKICAgICAgICAgd3BlX2xvYWRlcl9pbml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28u
MSIpOwogICAgICAgICBpZiAoQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1Jl
cXVpcmVtZW50cygpKSB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVz
Y3JpcHRvciA9IElQQzo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVy
X2hvc3RfY3JlYXRlX2NsaWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAg
ICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVt
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVk
X2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICAgICAgcGFyYW1ldGVy
cy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVt
ZW50YXRpb25fbGlicmFyeV9uYW1lKCkpKTsKICAgICAgICAgfQogI2VsaWYgVVNFKEVHTCkKICAg
ICAgICAgcGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lID0gV2F5bGFuZENv
bXBvc2l0b3I6OnNpbmdsZXRvbigpLmRpc3BsYXlOYW1lKCk7CkBAIC0xMTYsOCArMTE2LDggQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBs
aWNhdGlvbl9nZXRfZGVmYXVsdCgpOwogICAgIGlmIChhcHApCi0gICAgICAgIHBhcmFtZXRlcnMu
YXBwbGljYXRpb25JRCA9IFN0cmluZyB7IGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lk
KGFwcCkgfTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZyB7IGdfZ2V0
X2FwcGxpY2F0aW9uX25hbWUoKSB9OworICAgICAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRpb25faWQoYXBw
KSk7CisgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEo
Z19nZXRfYXBwbGljYXRpb25fbmFtZSgpKTsKIAogICAgIHBhcmFtZXRlcnMuaW5zcGVjdG9yU2Vy
dmVyQWRkcmVzcyA9IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjppbnNwZWN0b3JTZXJ2ZXJB
ZGRyZXNzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dpbi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dp
bi9XZWJQYWdlV2luLmNwcAppbmRleCA3NjQ0M2E5NDI1NGFlNGZlOGU1OGY4MDdiYWE1MjE1NmMz
NjdkMTFkLi5jNzdmZjc4Y2QzY2Q5NjI3ZDFhZTdiOTMwYzgxNDU3MDk0NjQ1MjAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3Bw
CkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgp
ICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFt
ZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNv
bW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVu
dCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5k
KFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBp
ZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAg
ICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUg
dG8gZGVjaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxl
VGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBs
LmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0Li4zNWMy
ODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYsNyBAQCBI
UkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZzZXQsIGxv
bmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFjY2Vzc2li
bGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdURjo6U3Ry
aW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1v
ZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFzZSgpOwog
ICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3
ZjUyMWRhMGZkYTI0YTU3NDA2ODBhMjQzNzliODJjYjI0MDM0MzM4Li43NzI0ZmIwMDJhMWFhMjgw
MzZiMmYwZmIyY2QwNGQ2MjFiMzUxZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtMjE0Nyw3ICsyMTQ3LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9h
cmRFdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9IGV2
ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5r
ZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNvbW1hbmQg
PSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVudCgmZXZl
bnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmlu
Zzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBpZiAoa2V5
RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8v
IFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVj
aWRlIGhvdyBjb21tYW5kcyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVk
aXRvciBzaG91bGQgYmUgdHJlYXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDAwMDVkMDEwZDM1YmM2
YzU4YzE4NjlkMTFhYzcxODJmMmM4Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4NjE0NDA1NmNlODM0OGY1
OTUwOWY1NmRlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3Rv
cmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcApAQCAtNDcsNSArNDcsNSBAQCBTdHJpbmcgV2Vi
RGF0YWJhc2VQcm92aWRlcjo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpCiAgICAgICAg
ICYmIDo6R2V0TGFzdEVycm9yKCkgIT0gRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIFN0cmluZyhkYXRhYmFzZURpcmVjdG9y
eSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkYXRhYmFzZURpcmVjdG9yeSk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcy
MTMzMTVmYjdiYjdhNWQ4NjRjYTgyOWI5MzNiMTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRiYmFmZjFi
NGQ2YzczOTBhMTMzZWYyMDhiYTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNl
IHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJp
dmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0J1aWxkZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdP
cGVyYXRvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tOgorICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1NlcnZpY2VXb3JrZXJCYXNpYy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld0NhblBhc3RlVVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMQ3Jhc2gubW06CisgICAgICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5K
YXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDggIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0g
Q3JlYXRlIHNlcGVyYXRlIHF1ZXVlIGZvciB1bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3
NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVj
MGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3Ry
aW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdp
bmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAg
ICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBA
QCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJV
RShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmlt
cGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3Zl
UlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZp
bmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5n
IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwg
fTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwog
ICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcg
KzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3
b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5n
KQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5h
bC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5o
YXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1v
dmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5h
bCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwp
KTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBF
Q1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9Owog
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFs
LT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFl
NTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsx
MjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0Zp
bGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRh
IG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6
TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZp
bGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9G
QUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1
MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5
OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhO
dW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRl
Z2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQs
IExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZB
Q0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUz
ODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEy
YmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1
aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVy
KTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygp
LgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0
ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcj
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNo
YXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFla
Iik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywg
YnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJl
c2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwog
ICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3Ry
KCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBl
bmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRl
cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJC
IiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
QSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVy
dCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBp
biB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2Un
LCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
ImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0
KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0
aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxz
ZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVs
bHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1
aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2Fw
YWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygi
MDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJl
c2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkp
OwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgp
ICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXll
LCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNl
eWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0K
QEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4
OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUg
U3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRv
U3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRl
ci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJD
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29u
dGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAg
c3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
REVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBz
aG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAg
c3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBz
dHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5j
YXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1
aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAg
YnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBh
Y2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhl
IFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAg
U3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAg
IEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEo
c3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBz
dHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVG
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsK
QEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFw
cGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQog
CiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1
Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWls
ZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVu
Z3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBi
dWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VR
KDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWls
ZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsK
IH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQog
ICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAw
KSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9U
UlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBT
dHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJf
cykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZl
Q2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEu
cmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVy
Mik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJf
cykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIg
IT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIp
OwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBU
ZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVp
bGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9B
dG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJp
bmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9G
aXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmlu
ZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3
NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwg
U3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChX
VEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0
cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAg
ICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywg
InRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJU
X0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0
ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0
aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNT
RVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0
IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2
MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBA
IC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwg
U3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0
cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9t
U3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07
CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBT
dHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1Zp
ZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwg
d3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQw
NC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5n
VmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVt
cHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmll
d1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVF
KHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBT
VUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhl
bGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8i
X3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAg
ICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3
ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJV
RShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwg
eyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6
OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJo
ZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1Zp
ZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7
CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAg
RVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJh
dG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwg
J2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3
ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0
KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50
cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAg
QEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFy
YWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0g
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFT
Q0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlz
QWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0
aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1Rf
VFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxv
IikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1
ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29u
c3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAg
ICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50
b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1Rf
RVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNl
cm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiks
IGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwg
a3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5s
YXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1
cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVz
ZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3Jk
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29t
cG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5
KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50
aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0
cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVy
YWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkK
IHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3
dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4
Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBh
c3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgw
ODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92
YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjov
LyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwg
VVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9V
UkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0
ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgs
NjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
PyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRl
c3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1
LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJM
IHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkx
PXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5
MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQp
OwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZh
bDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwg
dGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
MTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAg
CiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIs
ICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJf
cywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9
LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5
UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJM
IHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkx
PXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEi
LCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAi
dmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsg
ImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3Ms
ICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0
IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8i
X3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIi
LCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZl
Y3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3
MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3Rv
cjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAi
PSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBV
UkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAg
VVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIs
ICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVS
TCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAg
VVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIi
LCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAx
ZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0
OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04
OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZf
VmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBt
YXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAg
bWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChT
dHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2
MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3Ms
ICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4g
cGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
RlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3Bw
CmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVj
MDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBT
dHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0
IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgo
KSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxW
aWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3Ry
dWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxp
dGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5n
IExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBz
dHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJh
bCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJh
bC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3Ry
aW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9z
KSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03
MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAg
ICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0
eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAg
ICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9U
UlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVY
UEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsK
QEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0
ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0
cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcu
Y19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEo
ZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdp
dGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91Ymxl
KQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91
YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShv
ayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEo
MS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8g
ZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4
MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJs
ZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFj
ZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgx
LjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8v
IGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMg
Z3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRv
IHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRv
RG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2sp
KTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
RkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1
ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0
eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50
b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBu
dW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJf
cykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91
YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdo
YXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4
Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQo
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOwor
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUi
X3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRp
bmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpm
cm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZy
b21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwg
U3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiks
IDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShT
dHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGlu
Z0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBT
dHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0
cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFz
aCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRF
U1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1
YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcg
c3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2En
LCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJk
NGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNp
b25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJf
cywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsK
IAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0
ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0
ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMo
U3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygi
XFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmlu
ZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUx
YTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAot
Y29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25z
dCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4
dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWRE
YXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0
aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgi
VGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxl
TW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmlu
ZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5
Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5
IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAog
ICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJf
cywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7
IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJ
SVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJ
SUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWly
SW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFp
ckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3
ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEp
Il9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykp
Il9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJv
bUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5n
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAK
aW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRh
OWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAg
VEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBT
ZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJD
b3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6
ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNp
bXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6
OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAog
VEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMy
Y2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZh
M2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVi
bGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShT
dHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4Lmpw
IikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cu
Y29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50
ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ind3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51
ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFv
NjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHci
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEu
dHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNk
Zi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhi
aWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBs
ZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxl
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5j
b20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIu
ZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgi
w6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAg
IEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJf
cykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNo
RGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJm
ZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00
MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAg
ICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3Jn
L3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMp
LCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNj
b3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAg
ICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAg
ICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAg
ICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsK
ICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0
MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRh
M2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0
aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7
CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmls
ZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVy
KTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRl
c3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwog
ICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6
ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERh
dGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXIt
PnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRp
Z3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRl
ZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
VGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQ
YXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMx
NTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0
RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQ
YXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNl
clRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZT
dHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlG
JUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0
dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0
VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0
aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0
aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9z
LCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0
Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwg
Imh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgi
aHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmlu
ZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNl
clRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8i
X3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5n
KCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1
OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4
NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9w
YXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkx
Il9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9z
fSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxh
dXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJp
bmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAK
aW5kZXggMmRkN2U0YWU3YTAxYzI5ZWYxNGJlODlmZWRhYjI4NWQ5NzZmOTgwMy4uMWE1YjVkNmFk
OGRkMTc1ODk2ODk5NDRiZGJjOTQ2MzY4MzdlODE2NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2Vy
QWdlbnRGb3JVUkxIYXNDaHJvbWVCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAg
IFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTCggU3RyaW5nIHsg
dXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChV
UkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5n
LmNvbnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMo
IlNhZmFyaSIpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50
Rm9yVVJMSGFzQ2hyb21lQnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIAogc3RhdGljIHZv
aWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRmlyZWZveEJyb3dzZXJRdWlyayhjb25zdCBjaGFy
KiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwo
VVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2Vy
QWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1Rf
RkFMU0UodWFTdHJpbmcuY29udGFpbnMoIkNocm9tZSIpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFT
dHJpbmcuY29udGFpbnMoIlNhZmFyaSIpKTsKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQg
YXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRmlyZWZveEJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1
cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc01hY1BsYXRmb3JtUXVp
cmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNl
ckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9
IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwog
CiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIk1hY2ludG9zaCIpKTsKICAgICBF
WFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiTWFjIE9TIFgiKSk7CkBAIC03Miw3ICs3Miw3
IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc01hY1BsYXRmb3JtUXVpcmso
Y29uc3QgY2hhciogdXJsKQogLy8gdGhhdCB0aGUgc3RhbmRhcmQgdXNlciBhZ2VudCBzaG91bGQg
YmUgdXNlZC4pCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNFbXB0eVF1aXJr
KGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJB
Z2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBz
dGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKICAg
ICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuaXNOdWxsKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAu
LjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVkMjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBE
ZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBv
cmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0
YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5T
U3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJl
Y3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2Vy
PiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQ
YXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
bigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRF
U1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3Qp
CiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUg
aW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAg
IE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlE
aXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFj
a2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJh
c2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBA
IFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VG
YWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9y
bWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxl
cy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVt
cG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFi
YXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0
aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsy
MzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRy
eUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBi
ZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFz
ZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRo
ZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBk
aXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNl
cyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMx
NCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0
YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8g
ZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ug
c2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0
YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVu
Z2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5t
bQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMw
NmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWViZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3
IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFU
WHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhBeWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpL
ZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJMa1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29T
a1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlp
cm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBGbTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJn
cElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6
Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdE
Q0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhN
QyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVu
dGl0eTIoKQogICAgICI0Nml6aG91M0dTS3ozWDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFF
Z3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAgICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4
aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFL
MmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJPaVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAg
ICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXEx
Q3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNv
ZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJh
c2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4
IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEwZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlh
NTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3
ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRv
a2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAg
ICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFc
clxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9r
ZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4i
KSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6
OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJk
ZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcg
KzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9r
ZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0
LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRT
dHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBz
aWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNp
Z25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBh
bGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rv
ci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
ZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygi
c291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2Vj
cmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3Rp
bmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgo
KSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVx
dWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgw
MDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNT
YW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNT
YW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRl
UmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VD
T0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRp
b25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBk
b1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
c291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAi
dGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkp
OworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNP
RVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVz
dGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlw
ZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0
cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYg
KGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAg
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3Bv
bnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQ
UmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDgg
Kzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIq
IHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0
byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhD
b25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wg
c291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21w
KHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3Vy
Y2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9u
Q09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGlu
YXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3Nz
T3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VD
T0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYg
ZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291
cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9z
c09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAg
IGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lk
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hh
ciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1
bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9
LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5z
YWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUi
X3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxs
b3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJl
LWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8g
U2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2Fw
IGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1
c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2Fw
IGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBD
T0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJl
Y3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olllcywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4y
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09P
UFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwg
eyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVx
dWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJi
YTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRjNzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0yMTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewog
ICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYp
IHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJf
cywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFy
PiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uo
e3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1
bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQp
LnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5y
ZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciop
bGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dlZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6
ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJfcykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJl
NTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJkMWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJl
bnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1s
Jz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29u
c3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNy
Yz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1
dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4i
CiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0K
ICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwv
c2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkK
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
U1NMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNw
cAppbmRleCAwNTQwNTUzN2E3NTc0OGQwZmVmZjhkZjU4ZDQ2NTA2YjA2ZDIxNWFlLi5kMDIwZDZl
OGVjODdhNzM1NzA0YWY1ZjViZjJiYTgyNGZkZmI4ZDVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAg
cHVibGljOgogICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdf
T0JKRUNUKGNlcnRpZmljYXRlKSk7CiAgICAgICAgIG1fY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0
ZTsKICAgICAgICAgbV90bHNFcnJvcnMgPSB0bHNFcnJvcnM7Ci0gICAgICAgIG1fZmFpbGluZ1VS
TCA9IFVSTChTdHJpbmcgeyBmYWlsaW5nVVJJIH0pOworICAgICAgICBtX2ZhaWxpbmdVUkwgPSBV
UkwoU3RyaW5nOjpmcm9tTGF0aW4xKGZhaWxpbmdVUkkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IGI3YzFjYzFjNWM1M2I5NzA2ZWRkNGJjNGY3NzJjYTI5
NjNkMTM0MmYuLmQ4NTUwOGE1ZDMyZTZhNzcwNWMzMGU3ZWVlOTg2YTg4MWUxNDA0ZGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGll
bnQuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgd2lu
ZG93UHJvcGVydGllc05vdGlmeUNhbGxiYWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKiBwYXJhbVNw
ZWMsIFVJQ2xpZW50VGVzdCogdGVzdCkKICAgICB7Ci0gICAgICAgIHRlc3QtPm1fd2luZG93UHJv
cGVydGllc0NoYW5nZWQuYWRkKFN0cmluZyB7IGdfcGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNw
ZWMpIH0pOworICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFuZ2VkLmFkZChTdHJp
bmc6OmZyb21MYXRpbjEoZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBhcmFtU3BlYykpKTsKICAgICB9
CiAKICAgICBzdGF0aWMgV2ViS2l0V2ViVmlldyogdmlld0NyZWF0ZUNhbGxiYWNrKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdE5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb24sIFVJQ2xp
ZW50VGVzdCogdGVzdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IGM1NjkwMmEyMjk3MDcyMmQz
Y2MxMTZiYmEzMTBkZGI2YjQzZGU4OWIuLjdkZWQ2NmNlNjZkYzVhNGFhMzMyMzcxMDkwYTBhNDkw
ZTk4ZTM3NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcApAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJFeHRlbnNpb25QYWdlSUQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCiAgICAgLy8gUmVnaXN0ZXIgYSBjdXN0b20gVVJJIHNjaGVtZSB0byB0ZXN0IGhpc3Rv
cnkgbmF2aWdhdGlvbi4KICAgICB3ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVt
ZSh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCksICJmb28iLAogICAgICAgICBbXShXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRlcikgewotICAgICAgICAgICAgVVJMIHVybCA9
IFVSTChTdHJpbmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkg
fSk7CisgICAgICAgICAgICBVUkwgdXJsID0gVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh3ZWJraXRf
dXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpKTsKICAgICAgICAgICAgIEdSZWZQ
dHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9z
dHJlYW1fbmV3KCkpOwogICAgICAgICAgICAgY2hhciogaHRtbCA9IGdfc3RyZHVwX3ByaW50Zigi
PGh0bWw+PGhlYWQ+PHRpdGxlPiVzPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4i
LCB1cmwuaG9zdCgpID09ICJob3N0NSIgPyAiVGl0bGU1IiA6ICJUaXRsZTYiKTsKICAgICAgICAg
ICAgIGdfbWVtb3J5X2lucHV0X3N0cmVhbV9hZGRfZGF0YShHX01FTU9SWV9JTlBVVF9TVFJFQU0o
aW5wdXRTdHJlYW0uZ2V0KCkpLCBodG1sLCBzdHJsZW4oaHRtbCksIGdfZnJlZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwu
bW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRl
MDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAx
LDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAg
ICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VS
TCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBh
c3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
IiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10p
KTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVV
UkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwu
bW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2Ji
ZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxB
bmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRF
bGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9y
IGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJm
YWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRi
YWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxD
cmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJW
aWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRo
TWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICop
ZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAg
dGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2Vy
dmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBm
MmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVj
dGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVz
cG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAg
ICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNl
Yy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAg
ICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAi
Q29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2Nr
ZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0p
LnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1v
dmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBW
ZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZr
MU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94
dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlV
RkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0
VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhI
d2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAg
ICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVk
Q2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpA
QCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0
ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldw
cTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1Qr
VEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0
T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAg
InFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0
N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBi
YXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpk
ZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xp
Yi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDI4MDM0MTE0MGYwMmY4NGY3
OTQ5NGVlYzRiN2UzNmIxMWMwOTlkODMuLjhkZmE0ZTIzZjRlNDkwMjUyYjM5YTRiNjY3ZmFiOTMy
MjVjZGFjZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGli
L1dlYktpdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJL
aXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBDU3RyaW5n
IFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0
aCkgY29uc3QKIHsKICAgICBnX2Fzc2VydF9mYWxzZShtX2Jhc2VXZWJTb2NrZXRVUkwuaXNOdWxs
KCkpOwogICAgIGdfYXNzZXJ0X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycpOwotICAgIHJldHVy
biBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmcgeyBwYXRoICsgMSB9KS5zdHJpbmcoKS51
dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KKyAgICByZXR1cm4gVVJMKG1fYmFz
ZVdlYlNvY2tldFVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGggKyAxKSkuc3RyaW5nKCkudXRm
OCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcgc2xhc2guCiB9CiAKIENTdHJpbmcgV2ViS2l0VGVz
dFNlcnZlcjo6Z2V0VVJJRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewotICAgIHJl
dHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmcgeyBwYXRoIH0pLnN0cmluZygpLnV0ZjgoKTsKKyAg
ICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGgpKS5zdHJpbmco
KS51dGY4KCk7CiB9CiAKIHVuc2lnbmVkIFdlYktpdFRlc3RTZXJ2ZXI6OnBvcnQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVy
R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0
ay5jcHAKaW5kZXggMmE4ODUyNzE0YWVmZjFhMjE5ZDE3ZGE1MmY4ZTU3ZTdlYjY1ZTkxOC4uNDJm
YzBiNGYxM2MxNGFmNDY0OWM2Njg1MTIzZjM2MTAxMGUyZmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0xODUs
MTEgKzE4NSwxMSBAQCBzdGF0aWMgUmVmPEpTT046Ok9iamVjdD4gdG9KU09OT2JqZWN0KEdWYXJp
YW50KiB2YXJpYW50KQogICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVyLCAieyZz
dn0iLCAma2V5LCAmdmFsdWUpKSB7CiAgICAgICAgIGNvbnN0IEdWYXJpYW50VHlwZSogdHlwZSA9
IGdfdmFyaWFudF9nZXRfdHlwZSh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBlICYmIGdfdmFyaWFu
dF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQotICAgICAgICAgICAg
anNvbk9iamVjdC0+c2V0T2JqZWN0KFN0cmluZyB7IGtleSB9LCB0b0pTT05PYmplY3QodmFsdWUp
KTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmc6OmZyb21MYXRpbjEo
a2V5KSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192
YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfU1RSSU5HKSkKLSAgICAgICAg
ICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhTdHJpbmcgeyBrZXkgfSwgU3RyaW5nIHsgZ192YXJp
YW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpIH0pOworICAgICAgICAgICAganNvbk9iamVj
dC0+c2V0U3RyaW5nKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBTdHJpbmc6OmZyb21MYXRpbjEo
Z192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpKSk7CiAgICAgICAgIGVsc2UgaWYg
KHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfRE9VQkxF
KSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmcgeyBrZXkgfSwgZ192
YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERv
dWJsZShTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUp
KTsKICAgICB9CiAgICAgcmV0dXJuIGpzb25PYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9s
bGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0
ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4
Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEv
VG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxk
YldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhh
bXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAg
IFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsK
ICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAK
LSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJp
bmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5
U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07
CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7
CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7
CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNj
aW5vXHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457154</attachid>
            <date>2022-04-08 23:26:50 -0700</date>
            <delta_ts>2022-04-08 23:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408232649.patch</filename>
            <type>text/plain</type>
            <size>208274</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDRmODlkOTczZWM5
MTFhNWQ5MDlkZGQ3ZTJlYmE5N2E1ZDRmYmNiMGYuLmEzYmU4YmU4MzI5MzIwYTU2ZmFlNDIwNWZh
OWJhOWVjMzhlYzg1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgc3RhdGljIFN0cmluZyBkZWZhdWx0Q29va2llSmFyUGF0aCgpCiAgICAg
cmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChGaWxlU3lzdGVtOjps
b2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgZGVmYXVsdEZpbGVOYW1lKTsKICNl
bHNlCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTI0MTcKLSAgICByZXR1cm4gU3RyaW5nIHsgZGVmYXVsdEZpbGVOYW1lIH07CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkZWZhdWx0RmlsZU5hbWUpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcAppbmRleCBkMzliNjViNDQwZThmMmJiMTk1NGU2YzYwYTNlODkyM2IzZjQ2YWI2Li5k
M2VlMDdjMWVhMjJjZWExNzhmMTdjMGVkYjM1MzAyZjYxMGVjMWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCkBA
IC0zNDAsMTIgKzM0MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlU3Vt
bWFyeT4gY3JlYXRlU3VtbWFyeUluZm8oY29uc3QgVmVjdG9yPHVpbnQ4XwogCiBTdHJpbmcgdGxz
VmVyc2lvbihjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX2dldF92
ZXJzaW9uKHNzbCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9nZXRfdmVy
c2lvbihzc2wpKTsKIH0KIAogU3RyaW5nIHRsc0NpcGhlck5hbWUoY29uc3QgU1NMKiBzc2wpCiB7
Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9DSVBIRVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50
X2NpcGhlcihzc2wpKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX0NJUEhF
Ul9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZp
eEN1cmwuY3BwCmluZGV4IGVmODk2MjI0ZmEwN2FhNWZkYTFmYTgyYThiY2NmMWY2YWQ3NzMwNTcu
LmQyZGUwZGQxZTlkZmMxMDVlMmM3N2NkZTllNzFhMWJiNDcxODMzM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3Vy
bC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFN0cmluZyB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluSW50ZXJuYWwoY29uc3QgcHNsX2N0eF90KiBwc2wsIGNvbnN0IGMKIHsKICAgICAv
LyBwc2xfcmVnaXN0ZXJhYmxlX2RvbWFpbiByZXR1cm5zIGEgcG9pbnRlciB0byBkb21haW4ncyBk
YXRhIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gcHJpdmF0ZSBkb21haW4KICAgICBpZiAoY29uc3Qg
Y2hhciogdG9wUHJpdmF0ZURvbWFpbiA9IHBzbF9yZWdpc3RyYWJsZV9kb21haW4ocHNsLCBkb21h
aW4pKQotICAgICAgICByZXR1cm4gU3RyaW5nIHsgdG9wUHJpdmF0ZURvbWFpbiB9OworICAgICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcFByaXZhdGVEb21haW4pOwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcApp
bmRleCA1NzIwZTI0ZGY4YTAwYWZlN2E5YjE4ZDA0YjIwMjQ0ZTU5MTFjMWNmLi43MTdlYmRkMWJj
NjA5YTcxM2FmMTNkNTVhMDZlMGJiMDAxNjIwNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnRDdXJsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZXNvdXJjZUVycm9yIFN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybUJhZFJlc3BvbnNlRXJyb3IoKQogewogICAgIGludCBl
cnJvckNvZGUgPSAwOwogICAgIFVSTCBmYWlsaW5nVVJMOwotICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSIpOworICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSJfcyk7CiAKICAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcigiQ1VSTCJfcywgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlw
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggYThkMjM3
MDY0OGQyNDY4ODEyY2U1YjZmOTUzOWFhYjA5NjJlODZiYy4uNmUwYTNkYzdhYzVhZGYyMmY1NTNm
ODExMTM2MzNhMTM1YWU5MjcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNw
cApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29r
aWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpCiAgICAgR1VuaXF1
ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2FsbF9jb29raWVzKGNvb2tpZVN0
b3JhZ2UoKSkpOwogICAgIGZvciAoYXV0byogaXRlbSA9IGNvb2tpZXMuZ2V0KCk7IGl0ZW07IGl0
ZW0gPSBnX3NsaXN0X25leHQoaXRlbSkpIHsKICAgICAgICAgR1VuaXF1ZVB0cjxTb3VwQ29va2ll
PiBjb29raWUoc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KGl0ZW0tPmRhdGEpKTsKLSAgICAgICAg
aWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChTdHJpbmcgeyBz
b3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkgfSkgPT0gZG9tYWluKSB7CisgICAg
ICAgIGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5n
Ojpmcm9tTGF0aW4xKHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSkpID09IGRv
bWFpbikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCmluZGV4IDM0YTU3ZTVjMmMy
ZWI2OTg5N2E1NzNhZTQwMzJiMjMxYjk5OTNjMWQuLmNiYWJjMDE5MjYyNDBkMTE1NmYzODI2ODc2
MDA0MDVkOWM3ZGFmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dHJhbnNw
b3J0RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3Ry
aW5nJiByZWFzb25QaHJhc2UpCiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikgfSwgc3RhdHVzQ29kZSwg
ZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikp
LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOwogfQogCiBSZXNvdXJjZUVy
cm9yIFJlc291cmNlRXJyb3I6Omh0dHBFcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSwgR0Vycm9y
KiBlcnJvcikKQEAgLTYxLDIyICs2MSwyMiBAQCBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6
OmF1dGhlbnRpY2F0aW9uRXJyb3IoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KG1lc3NhZ2UpOwogI2lmIFVTRShTT1VQMikKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBtZXNzYWdl
LT5zdGF0dXNfY29kZSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRp
bjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikpLCBtZXNzYWdlLT5z
dGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRvVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1l
c3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxz
ZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNP
VVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNzYWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3Ry
aW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3VwX21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdl
KSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVU
Rjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0K
IAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwg
ZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVy
cm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNpZ25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZp
Y2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExTX0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURf
Q0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOwor
ICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFy
a190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19UTFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBm
YWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVy
cm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlm
aWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVybiByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2Vk
ZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDllNTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6
dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFk
ZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFs
dWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0
ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVs
ZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAg
IG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6
ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2
ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdlYjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
U291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNw
b25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9
CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1l
c3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRf
cmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2Fn
ZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBzb3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2Nl
cnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBtX3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9n
ZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3JzKHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2
LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAg
ICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29u
ZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250
ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9N
T0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUgIT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBj
b250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRDb250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAg
ICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRh
dGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFs
VHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lh
bFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlwZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVz
Q29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1J
TUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3Vw
TWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNo
YXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVh
ZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJW
YWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhl
YWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlm
aWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYwMmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYz
NWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3
IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVDb2NvYTo6c2hvcnRNb250aExhYmVscygp
CiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVscy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAg
IGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhOYW1lKQotICAgICAgICBtX3Nob3J0TW9udGhM
YWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAg
IG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1f
c2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQzNmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5
YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFjZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgs
MTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAg
IERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGlnaXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdl
dExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNUSVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24p
OwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiX3MpOworICAgICAgICBz
eW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAg
ICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJf
cyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMgPSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FM
RV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNTRVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRp
ZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMu
LmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBA
IC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwg
RHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYg
KFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewog
ICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0
cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpA
QCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAv
LyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChk
YXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRh
dGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVt
UGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJs
ID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRh
KSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAg
ICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1Mjcs
NyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0g
ZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCks
ICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9
IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAg
dGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShk
YXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxl
YXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBi
b29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBj
Zmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6
Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRt
bC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9
IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0
Q291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRl
ci5jcHAKaW5kZXggYjc2NDkxZDc2Njg3NTk2ZmE1NDZiZDdlODBmNWUxOGE0YTE3NTVjYi4uMDgw
MTE1Y2VlMTdlN2EzNTZhNjE1OTZkYTI2YzU1M2EzMDlmNzQ0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcApAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEdESU9iamVjdENvdW50ZXI6OkdESU9iamVjdENvdW50
ZXIoY29uc3QgY2hhciogaWRlbnRpZmllcikKIHsKLSAgICBpbml0KFN0cmluZyB7IGlkZW50aWZp
ZXIgfSk7CisgICAgaW5pdChTdHJpbmc6OmZyb21MYXRpbjEoaWRlbnRpZmllcikpOwogfQogCiBH
RElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3VudGVyKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1l
LCB2b2lkKiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4YmNmZjhkNTZk
Li40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAsNyArODQwLDcg
QEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQsIFBsYWlu
VGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2
YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKICAgICAgICAg
aWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBMYXRpbi0xLCBu
b3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJpZ2h0IGVuY29k
aW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZzo6
ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSk7CiAgICAg
ICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSYgZnJhbWUs
IGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJk
RGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAgICAgICAgICAg
ICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKTsK
LSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgYXV0
byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAgICAgICBHbG9i
YWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgc3Ry
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0
b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldp
bi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRhNzE5NS4uMjJl
NzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0
b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQgYmUgbG9jYWxp
emFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVuZCgiSGlnaCBH
cmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmco
dW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBVUkwmIHVybCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGls
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKaW5k
ZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNhYTlkMi4uMzEzYzMyYTkzNmQ5
MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcgKzYwLDcgQEAgaW5saW5lIFN0
cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkK
ICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKICAgICBYclJlc3Vs
dCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKICAg
ICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVy
KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgIHJldHVy
biBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5i
OTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5j
cHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpw
YWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVz
KCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9y
bWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNl
cnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIu
Ljg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZl
ci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2Vy
dmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tF
VF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciog
dGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0
cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9y
IChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9
IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVu
dChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3Ry
bmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwo
KSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9y
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYg
IWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7
CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5n
dGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEz
IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAg
ICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9
IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdl
dD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAg
ICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAg
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3Ry
TGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2
Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0
ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lv
bi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVz
ZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNz
aW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBo
YW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3
MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0Nh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1
aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5
IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVj
dDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVx
dWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlz
TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRo
ZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50
IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlk
YXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWly
ZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMi
X3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAg
VmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xp
c3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYg
KCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBh
bGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVy
cm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJp
bGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
Zmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRj
aENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2Jq
ZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBm
b3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykp
KTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBM
ZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxp
ZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMu
CiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMo
KmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmls
aXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52
YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEs
NyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2Fw
YWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVh
dGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVj
dD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAg
aWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNz
aW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBA
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RU
b0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5v
dENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5
MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0
U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rp
b24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNz
aW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUs
NyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlw
ZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBp
cyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFj
dGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBt
aXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9k
b3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAg
ICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlm
IChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsK
KyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUn
IGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5n
bGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZh
bHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBk
dXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2Jq
ZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRT
dHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAo
IWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4g
YWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6
VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMg
Ym9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVy
IikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50
ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVy
TW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAg
ICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAg
ICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAg
ICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24u
eCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
b2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9u
LCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsK
ICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7
CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9p
bnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAg
ICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFs
aWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwx
MiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVy
QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpT
dWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24n
IGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZv
ciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpi
dXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9p
bnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkp
OwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2Ug
aWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246
OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdo
ZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgi
X3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpk
ZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1
ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8g
ZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAg
ICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOwor
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVs
dGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0g
ZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVj
dCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFz
T2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpT
T046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAg
ICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRl
clR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJU
eXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkw
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFj
dGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNl
ID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVu
Y2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNl
IGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
YWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNv
dXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9y
IG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlv
biBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAg
ICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAo
IWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQn
IGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNz
aW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9u
CiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJj
ZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNl
LnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRv
ZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJj
ZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlw
ZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25T
ZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBp
cyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQg
b3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9u
JiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+
YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24g
aW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJz
LT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5v
dCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJE
cml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWVi
YmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYx
ZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZp
Y2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0
KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygp
CiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxh
dGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5h
bWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9
IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBi
b29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
UGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVz
LCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5i
cm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RL
X0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9Owog
ICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNl
L1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1
ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJh
ZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVy
U2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0
aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
d3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5
MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQw
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENh
cGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAg
ICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNl
OwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBj
b25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNl
Q2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJv
d3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAg
ICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3
cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDFmMGI3ZTRlOTll
Y2QzMGQ4NWViNjU2Mjg4YjU2M2Q0MjM5MGNkNzguLjMwOWRhYzA3OWRkMjg3Yjg0MWE4MjAxNzNi
NTc0Yzc1OGU1MDlmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTkzMSw3ICs5MzEsNyBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKCkKICNpZiBV
U0UoU09VUDIpCiAgICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6dHJhbnNwb3J0RXJyb3Io
bV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU09VUF9TVEFUVVNfVE9PX01BTllfUkVESVJFQ1RTLCAi
VG9vIG1hbnkgcmVkaXJlY3RzIl9zKSk7CiAjZWxzZQotICAgICAgICBkaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBT
T1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJFQ1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVy
bCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSByZWRpcmVjdHMiKSkpOworICAgICAgICBk
aWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5n
KFNPVVBfU0VTU0lPTl9FUlJPUikpLCBTT1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJF
Q1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSBy
ZWRpcmVjdHMiKSkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDM3LDcg
KzEwMzcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlYWRDYWxsYmFjayhHSW5wdXRT
dHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqCiAgICAgICAgIGlmICh0YXNrLT5tX3Nv
dXBNZXNzYWdlKQogICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yOjpnZW5l
cmljR0Vycm9yKHRhc2stPm1fY3VycmVudFJlcXVlc3QudXJsKCksIGVycm9yLmdldCgpKSk7CiAg
ICAgICAgIGVsc2UgaWYgKHRhc2stPm1fZmlsZSkKLSAgICAgICAgICAgIHRhc2stPmRpZEZhaWwo
UmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9
LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVU
RjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4p
KSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0gZWxzZSBpZiAoYnl0ZXNSZWFkID4gMCkKQEAg
LTExMjcsNyArMTEyNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVxdWVzdE5l
eHRQYXJ0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmIGlucHV0U3RyZWFtCiAgICAgQVNTRVJUKCFt
X2lucHV0U3RyZWFtKTsKICAgICBtX2lucHV0U3RyZWFtID0gV1RGTW92ZShpbnB1dFN0cmVhbSk7
CiAgICAgYXV0byogaGVhZGVycyA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVhbV9nZXRfaGVh
ZGVycyhtX211bHRpcGFydElucHV0U3RyZWFtLmdldCgpKTsKLSAgICBTdHJpbmcgY29udGVudFR5
cGUgeyBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50LVR5cGUi
KSB9OworICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwogICAgIG1fcmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKG1fZmlyc3RSZXF1ZXN0LnVybCgpLCBleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpLCBleHRyYWN0Q2hhcnNldEZyb21NZWRp
YVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgIG1fcmVzcG9uc2UudXBkYXRlRnJv
bVNvdXBNZXNzYWdlSGVhZGVycyhoZWFkZXJzKTsKQEAgLTEyNDksNyArMTI0OSw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAgICAgICAgIGNvbnN0IGNoYXIq
IGhlYWRlck5hbWU7CiAgICAgICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3Ry
aW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKKyAgICAgICAgICAgIHJlcXVl
c3RIZWFkZXJzLnNldChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJv
bUxhdGluMShoZWFkZXJWYWx1ZSkpOwogICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5yZXF1ZXN0
SGVhZGVycyA9IFdURk1vdmUocmVxdWVzdEhlYWRlcnMpOwogCiAgICAgICAgIGFkZGl0aW9uYWxN
ZXRyaWNzLnByaW9yaXR5ID0gdG9OZXR3b3JrTG9hZFByaW9yaXR5KHNvdXBfbWVzc2FnZV9nZXRf
cHJpb3JpdHkobV9zb3VwTWVzc2FnZS5nZXQoKSkpOwpAQCAtMTY5MSw3ICsxNjkxLDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRGaWxlSW5mbyhHRmlsZUluZm8qIGluZm8pCiAg
ICAgICAgIG1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoInRleHQvaHRtbCJfcyk7CiAgICAgICAgIG1f
cmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKC0xKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBTdHJpbmcgY29udGVudFR5cGUgeyBnX2ZpbGVfaW5mb19nZXRfY29udGVudF90eXBlKGlu
Zm8pIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ19m
aWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShpbmZvKSk7CiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0
TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAg
ICAgICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgaWYgKG1fcmVzcG9uc2Uu
bWltZVR5cGUoKS5pc0VtcHR5KCkpCkBAIC0xNzE5LDcgKzE3MTksNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza1NvdXA6OnJlYWRGaWxlQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBOZQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRy
PEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19JTlBVVF9TVFJFQU0oZ19m
aWxlX3JlYWRfZmluaXNoKGZpbGUsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSkpOwogICAgIGlm
IChlcnJvcikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2Zp
cnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAg
ICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0
UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBl
bHNlCiAgICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKFdURk1vdmUoaW5wdXRTdHJlYW0pKTsKIH0K
QEAgLTE3NDMsNyArMTc0Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZW51bWVyYXRl
RmlsZUNoaWxkcmVuQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsCiAgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQdHI8R0ZpbGVFbnVtZXJhdG9yPiBlbnVt
ZXJhdG9yID0gYWRvcHRHUmVmKGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fZmluaXNoKGZpbGUs
IHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKQotICAgICAgICB0YXNr
LT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3It
PmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJp
bmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICB0YXNrLT5kaWRGYWlsKFJl
c291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5k
b21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6
OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAgdGFzay0+ZGlk
UmVhZEZpbGUod2Via2l0RGlyZWN0b3J5SW5wdXRTdHJlYW1OZXcoV1RGTW92ZShlbnVtZXJhdG9y
KSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcAppbmRleCA5N2YwOTg1NGNmNWUzZTI4ZmUwMmViY2Y5MjIxYjM1ZGIyZTA5YWI2Li42
ZWVjMzcyZmNmNTU2MjFkNDUzNTgyMjQwNWQ0NmMwNGUzYWYwMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAK
QEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0
cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJlcnJvciIsIHJlaW50ZXJwcmV0X2Nh
c3Q8R0NhbGxiYWNrPihkaWRSZWNlaXZlRXJyb3JDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJjbG9zZWQiLCByZWludGVy
cHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayksIHRoaXMpOwogCi0gICAgbV9j
aGFubmVsLmRpZENvbm5lY3QoU3RyaW5nIHsgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf
cHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSB9LCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7Cisg
ICAgbV9jaGFubmVsLmRpZENvbm5lY3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkpLCBhY2NlcHRlZEV4
dGVuc2lvbnMoKSk7CiAKICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSk7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29u
bmVjdF9ieV9kYXRhKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA4YmU1ZTY2ODY1OTBhNzYx
Mzc0ZDU5YWQzODdkODZiZmJhZmJiMjY4Li5hNzA2NTQwNTdiY2YwY2MxY2FmMTE4OWU0OTAwYzBk
ZWE3MzQwNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2lu
Z1VuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgbG9nTGV2ZWxT
dHJpbmcoKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICByZXR1cm4gU3RyaW5nIHsgZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSk7CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmlu
ZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVhNDdkMDhk
YzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdD
b25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMgaW50IGNy
ZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAgICAgZm9y
IChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEwOyArK3Ry
aWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIp
ICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9tTnVtYmVy
KCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpOworICAg
ICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8
dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1lLnV0Zjgo
KTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Z2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIwOTJkYjI3
YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTljZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShX
ZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0dXJuX2lm
X2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgIFVSTCB1
cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVxdWVzdC0+
cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCmlu
ZGV4IDdmMDBlZmZkZWQ4N2FkODU2MDI4NjdhZDA2OGNkZmRmYmZhOTRjNTguLmQwYjQ5MDI2MGEw
NDVhZjk0YWYxMmY0MDk0ZTc0ODhjZmU2MTdhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApAQCAtNjYsNyArNjYsNyBA
QCBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tTGF0aW4xKGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRLZXlWYWx1
ZVBhaXIoV2ViTWVtb3J5U3RhdGlzdGljcyYgc3RhdHMsIGNvbnN0IFN0cmluZyYga2V5LCBzaXpl
X3QgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2Mx
MTFjZmVkYjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkx
NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9j
b2xIYW5kbGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCkKIAogdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJp
bmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAg
VVJMIHJlcXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9
PSAiZ3B1IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQz
Y2VmMjNiMjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0s
IEdBc3luYwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNw
b25zZS5nZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcg
Y29udGVudFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3Ap
LmRhdGEoKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAg
ICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJs
KCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAg
ICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3Rh
dHVzTWVzc2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNw
KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAg
ICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQ
U3RhdHVzVGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNz
YWdlLmRhdGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVn
aXN0cnk6Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtMzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJp
di0+cmVzcG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJv
cihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dl
YkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBs
ZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdENvbG9yLmNwcAppbmRleCAyMmZjMGE4ZGZiMDhlYjJhZGI0MGI5MGM1YjMxNDM2
YWVlMjljYzFmLi4yMjc1ZDc0ODVjMTI0YzdmMzE0NGU2NTg4MzU1NDVmODg4NGZjMDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcApAQCAt
MTA5LDcgKzEwOSw3IEBAIGdib29sZWFuIHdlYmtpdF9jb2xvcl9wYXJzZShXZWJLaXRDb2xvciog
Y29sb3IsIGNvbnN0IGdjaGFyKiBjb2xvclN0cmluZykKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChjb2xvciwgRkFMU0UpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yU3RyaW5nLCBG
QUxTRSk7CiAKLSAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VDb2xvcldpdGhvdXRDb250ZXh0KFN0cmluZyB7IGNvbG9yU3RyaW5nIH0pOworICAgIGF1dG8g
d2ViQ29yZUNvbG9yID0gV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRl
eHQoU3RyaW5nOjpmcm9tTGF0aW4xKGNvbG9yU3RyaW5nKSk7CiAgICAgaWYgKCF3ZWJDb3JlQ29s
b3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCA5MzMyMzJl
MmY2ODRlZDNjMmIzNWVlODIwMGMwYzY3OTgzZGVkYmY3Li40ZWUzYTViMDAzYmQwZmMzYzU1NTZj
NTU3YTdhN2NmOGQzZmZhZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
bGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2Vz
cykgewogICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQQzo6
QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAgICAgIHBhcmFtZXRlcnMu
aW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGli
cmFyeV9uYW1lKCkgfSk7CisgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5
TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21M
YXRpbjEod3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgp
KSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKICAgICAgICAgd3BlX2xvYWRlcl9pbml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28u
MSIpOwogICAgICAgICBpZiAoQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1Jl
cXVpcmVtZW50cygpKSB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVz
Y3JpcHRvciA9IElQQzo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVy
X2hvc3RfY3JlYXRlX2NsaWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAg
ICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVt
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVk
X2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICAgICAgcGFyYW1ldGVy
cy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVt
ZW50YXRpb25fbGlicmFyeV9uYW1lKCkpKTsKICAgICAgICAgfQogI2VsaWYgVVNFKEVHTCkKICAg
ICAgICAgcGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lID0gV2F5bGFuZENv
bXBvc2l0b3I6OnNpbmdsZXRvbigpLmRpc3BsYXlOYW1lKCk7CkBAIC0xMTYsOCArMTE2LDggQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBs
aWNhdGlvbl9nZXRfZGVmYXVsdCgpOwogICAgIGlmIChhcHApCi0gICAgICAgIHBhcmFtZXRlcnMu
YXBwbGljYXRpb25JRCA9IFN0cmluZyB7IGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lk
KGFwcCkgfTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZyB7IGdfZ2V0
X2FwcGxpY2F0aW9uX25hbWUoKSB9OworICAgICAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRpb25faWQoYXBw
KSk7CisgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEo
Z19nZXRfYXBwbGljYXRpb25fbmFtZSgpKTsKIAogICAgIHBhcmFtZXRlcnMuaW5zcGVjdG9yU2Vy
dmVyQWRkcmVzcyA9IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjppbnNwZWN0b3JTZXJ2ZXJB
ZGRyZXNzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAppbmRleCAzMzg0
ZmEyNThjMjBmNDQ2ZjIxMmRhZTJjMjRkYzlkODEyMmJhZDAxLi43NmU2Y2VmZTkwZGMwMGJlMzg0
YjM1N2ZkNjE5MWU2ZGVhZmE0MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUu
Y3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2
ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQ
cmVzcyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIHBsYXRmb3JtRXZlbnQpCiB7Ci0gICAgU3RyaW5nIGNvbW1hbmROYW1lIHsg
aW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFtZSA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogCiAgICAgaWYgKCFjb21t
YW5kTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21t
YW5kTmFtZSkuZXhlY3V0ZSgpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRm
b3JtS2V5CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBLZXlib2Fy
ZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKIHsKLSAgICBTdHJp
bmcgY29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRvIGNv
bW1hbmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7
CiAgICAgaWYgKGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAK
aW5kZXggNzY0NDNhOTQyNTRhZTRmZThlNThmODA3YmFhNTIxNTZjMzY3ZDExZC4uYzc3ZmY3OGNk
M2NkOTYyN2QxYWU3YjkzMGM4MTQ1NzA5NDY0NTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVu
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVk
aXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAg
ICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRp
bjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBl
KCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9l
c24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYTIxNjNm
ZDA5MmI0NTQzY2FhNWE1MjA5MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2FjODg3M2IxNzQzMWY5
ZWQ1NjdiMjFjOTliZmIyM2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
QWNjZXNzaWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nl
c3NpYmxlVGV4dEltcGwuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxl
VGV4dDo6c2V0QXR0cmlidXRlcyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNU
UiogYXQKIC8vIElBY2Nlc3NpYmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Z2V0X2F0dHJp
YnV0ZXMoQlNUUiogYXR0cmlidXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1v
ZGVsOmExIik7CisgICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSJfcyk7CiAgICAg
KmF0dHJpYnV0ZXMgPSBCU3RyaW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEyNGE1NzQw
NjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNkMDRkNjIx
YjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcsNyArMjE0
Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93
bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRv
IGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50
ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBo
YXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMg
dGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRy
ZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDExYWM3MTgy
ZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6
OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6OkdldExhc3RFcnJv
cigpICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKIAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0
Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEzM2VmMjA4
YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21M
YXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToK
KyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAg
ICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
cjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBx
dWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFm
YzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBh
MTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
IAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9
OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNU
X1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29w
eS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyAr
NTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3Jp
Z2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25l
UmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAt
NzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxT
dHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmlu
ZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RS
VUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwt
PmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBN
b3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlS
Vk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3Vu
dCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxl
U3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
CmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIz
OTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToK
IFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wg
c3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShT
dHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZp
bGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRG
aWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAg
ICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0
YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDks
NjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
bGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJf
cywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJk
NDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBA
IC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVj
dG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVy
LnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3
ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAw
KTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZElu
dE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0g
Pj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
QUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEp
KSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdD
JywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxk
ZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNh
cGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQ
RUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQg
dG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNv
bnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScs
ICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIp
OwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNU
X0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5Miwz
MiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygp
LmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2Ug
dGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmlu
Z0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywx
MyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBF
WFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgog
ICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNp
dHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3Mp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWls
ZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5z
aHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMx
MSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShl
cXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxk
ZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAg
ICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2
NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygi
MTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsK
IAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygi
MTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUy
LDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0
b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
MyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFi
ODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJj
MjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNX
aXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIp
OworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0
ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7
Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2
OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBA
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykK
IHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJp
bmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFT
Q0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0
cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdC
YWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBz
dHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3Vu
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4
IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2
NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdW
aWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAg
ICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhz
dHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3Rl
cnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJp
bmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZp
ZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1l
Q2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmlu
ZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAg
YXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBv
aW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0
b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5n
IHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBh
dXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwog
ICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICAr
K2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChX
VEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXco
U3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGlu
MSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhT
dHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFh
ZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAx
NWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBA
IC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFy
KQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJs
LnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cu
ZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAg
RVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9y
dCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNl
cigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1Rf
VFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBz
dGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyAr
ODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQog
VEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9j
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdT
aGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQu
b3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIp
LCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVT
VF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwg
dXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1
cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJr
ZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAg
IAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0
b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0s
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwg
dXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsK
ICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZh
bDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9z
KTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5
MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcs
IHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJf
cyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5
MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0
VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIs
ICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RW
ZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAi
Il9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAK
ICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsK
ICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9
dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9z
LCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAg
ICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7
CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkz
MCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAi
dGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
OSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3Ms
ICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMx
LCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9z
LCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
NSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQz
NTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRF
U1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhh
c2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQo
U3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsg
ImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBT
dHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5z
ZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAg
YXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZi
ZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1
MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9t
TGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3lu
dGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9F
USgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGlj
aXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwog
CiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAg
ICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwu
bGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0
ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRl
cmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNU
KFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3Ry
aW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hh
cmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcg
QEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3Rl
ZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBF
Q1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5
Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEo
MC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7
CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxl
YWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcg
anVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFu
IGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAv
LyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9y
IG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAg
IC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmlu
aXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNp
YWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0
KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
c3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwot
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJT
VCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
LmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4
Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3Rh
cnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNU
X1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAg
IEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi
5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0
cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRl
bXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5n
MS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhp
c3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsK
LSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7
CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0
cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3
MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAg
LTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0Zh
aWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFy
IG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcg
eyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGlu
MShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50
RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAg
IAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFj
OGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4
MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRl
c3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZp
c2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFu
Z2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYy
OTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBk
ZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFk
ZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/
XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBh
aXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90
ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9
KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhU
VFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6
IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3Ry
aW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90
ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUx
ZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdj
YTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQog
ewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVy
OjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3Ry
aW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29y
ZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRl
Y29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1
ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5n
KHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNU
X0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVr
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ind3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
Ny4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNv
bS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFp
biksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxl
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7Yi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
Ojpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XD
hMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRl
eCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0
Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRF
U1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29w
ZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAg
ICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7
Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5z
Y29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9w
aWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5p
bnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNj
MmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2lu
Z0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhp
c3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcg
KzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05V
TEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhi
dWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6
OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwg
YnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3
ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hv
c3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywg
IiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlG
JUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJv
Z2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGlu
MSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNr
VVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVy
eSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxh
dGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJf
c30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1
bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hv
c3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVk
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsK
IAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsK
KyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmlu
ZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9
KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0
cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmco
KSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJM
KG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwg
eyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3Bh
dGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0
L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDJkZDdlNGFlN2Ew
MWMyOWVmMTRiZTg5ZmVkYWIyODVkOTc2Zjk4MDMuLjFhNWI1ZDZhZDhkZDE3NTg5Njg5OTQ0YmRi
Yzk0NjM2ODM3ZTgxNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzQ2hy
b21lQnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcg
PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoIFN0cmluZyB7IHVybCB9KSk7CisgICAgU3Ry
aW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxh
dGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiQ2hyb21l
IikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7CkBAIC00
NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJy
b3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2Vu
dEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0
cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwg
fSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChT
dHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNv
bnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5zKCJT
YWZhcmkiKSk7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZv
clVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9p
ZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVy
bCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwo
U3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2Vu
dEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9UUlVF
KHVhU3RyaW5nLmNvbnRhaW5zKCJNYWNpbnRvc2giKSk7CiAgICAgRVhQRUNUX1RSVUUodWFTdHJp
bmcuY29udGFpbnMoIk1hYyBPUyBYIikpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgdm9pZCBh
c3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVybCkK
IC8vIHRoYXQgdGhlIHN0YW5kYXJkIHVzZXIgYWdlbnQgc2hvdWxkIGJlIHVzZWQuKQogc3RhdGlj
IHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRW1wdHlRdWlyayhjb25zdCBjaGFyKiB1cmwp
CiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0
cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVh
U3RyaW5nLmlzTnVsbCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3
NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFl
NzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpA
QCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAg
IC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRp
b24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFu
ZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3Qg
YW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3Vs
ZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJh
Y2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4g
dGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhl
ciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcg
KndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFi
YXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRw
cyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxl
KQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRo
ZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0
ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkK
ICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBk
YXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0
KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNl
IHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1v
dmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1
NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVh
ZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2Vj
SWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5
UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4
Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6
IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6
Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIp
OworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJp
bmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5N
M0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTcz
LDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZp
emhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcy
RG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhB
dUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2
L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5
cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsK
IAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2
YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5j
b2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4
MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2
YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGlj
IHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQ
YXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0
cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNp
emUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0g
U3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3Rp
bmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5r
YWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVx
dWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0g
a2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVx
dWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMg
dm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1Bh
cnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0
LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5n
KCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tl
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0g
c2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJj
ZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3Mp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBz
dGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tl
bkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFz
ZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0
ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Nl
Y3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQo
JyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgx
MDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5
NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAg
LTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJO
YXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wg
eyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5v
LCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciog
c291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVP
cmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RT
d2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJ
TGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFs
IGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3Jp
Z2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAg
ICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAg
ICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsK
ICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNv
dXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VD
T0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsK
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwi
X3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25D
T09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVAp
Ci0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25I
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25D
T0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3Rp
bmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6
OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBI
VFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGlj
IHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25z
dCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0g
cHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBh
ZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2Ft
ZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUt
Y29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdp
biIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVp
cmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0g
c291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1j
b3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9
PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NP
cmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8
fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWly
ZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1
c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3Vy
Y2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVk
aXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBk
b2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5X
aXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRp
cmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAu
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsg
fSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0
aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcw
ZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1
bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2
ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlv
bi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1s
IiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3Mg
fSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUi
LCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlw
dCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1d
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0
KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEo
KSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3Nm
dWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUz
ZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRt
bD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1s
PiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVu
dEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48
L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8
aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAt
Mjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1s
PiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMDU0MDU1Mzdh
NzU3NDhkMGZlZmY4ZGY1OGQ0NjUwNmIwNmQyMTVhZS4uZDAyMGQ2ZThlYzg3YTczNTcwNGFmNWY1
YmYyYmE4MjRmZGZiOGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0U1NMLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjZXJ0aWZpY2F0
ZSkpOwogICAgICAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAgICAgICAgIG1fdGxz
RXJyb3JzID0gdGxzRXJyb3JzOwotICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5nIHsg
ZmFpbGluZ1VSSSB9KTsKKyAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZzo6ZnJvbUxh
dGluMShmYWlsaW5nVVJJKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNw
cAppbmRleCBiN2MxY2MxYzVjNTNiOTcwNmVkZDRiYzRmNzcyY2EyOTYzZDEzNDJmLi5kODU1MDhh
NWQzMmU2YTc3MDVjMzBlN2VlZTk4NmE4ODFlMTQwNGRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtMTMxLDcg
KzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHdpbmRvd1Byb3BlcnRpZXNOb3Rp
ZnlDYWxsYmFjayhHT2JqZWN0KiwgR1BhcmFtU3BlYyogcGFyYW1TcGVjLCBVSUNsaWVudFRlc3Qq
IHRlc3QpCiAgICAgewotICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFuZ2VkLmFk
ZChTdHJpbmcgeyBnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSB9KTsKKyAgICAgICAg
dGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFdl
YktpdFdlYlZpZXcqIHZpZXdDcmVhdGVDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uLCBVSUNsaWVudFRlc3QqIHRlc3QpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4
dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcAppbmRleCBjNTY5MDJhMjI5NzA3MjJkM2NjMTE2YmJhMzEwZGRiNmI0
M2RlODliLi43ZGVkNjZjZTY2ZGM1YTRhYTMzMjM3MTA5MGEwYTQ5MGU5OGUzNzU4IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
RXh0ZW5zaW9ucy5jcHAKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0
ZW5zaW9uUGFnZUlEKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIC8vIFJl
Z2lzdGVyIGEgY3VzdG9tIFVSSSBzY2hlbWUgdG8gdGVzdCBoaXN0b3J5IG5hdmlnYXRpb24uCiAg
ICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUodGVzdC0+bV93ZWJDb250
ZXh0LmdldCgpLCAiZm9vIiwKICAgICAgICAgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVx
dWVzdCwgZ3BvaW50ZXIpIHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nIHsgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAgICAgICAgICAg
VVJMIHVybCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4g
aW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKICAg
ICAgICAgICAgIGNoYXIqIGh0bWwgPSBnX3N0cmR1cF9wcmludGYoIjxodG1sPjxoZWFkPjx0aXRs
ZT4lczwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgdXJsLmhvc3QoKSA9PSAi
aG9zdDUiID8gIlRpdGxlNSIgOiAiVGl0bGU2Iik7CiAgICAgICAgICAgICBnX21lbW9yeV9pbnB1
dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtLmdldCgp
KSwgaHRtbCwgc3RybGVuKGh0bWwpLCBnX2ZyZWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVh
MmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3
YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29w
eUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBV
UkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBh
YnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0
TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1
NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0
MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRM
ZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5j
aG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVj
dG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0
cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3
YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2Vh
MWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcg
KzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZp
ZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5n
ICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZl
ci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5
MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUy
NzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2Vy
dmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5k
c2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAg
ICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAg
ICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25u
ZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2Vw
dCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3Jh
ZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJV
cGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2Vi
U29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJl
c3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5k
bGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhU
VFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBo
WmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6
ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2Ei
CiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29D
TW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAg
ICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNv
ZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAg
ICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBA
QCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKQogICAgICJia1Vi
aUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVE
bG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMx
RHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlpl
bUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZ
NEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9
PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0
VGVzdFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJL
aXRUZXN0U2VydmVyLmNwcAppbmRleCAyODAzNDExNDBmMDJmODRmNzk0OTRlZWM0YjdlMzZiMTFj
MDk5ZDgzLi44ZGZhNGUyM2Y0ZTQ5MDI1MmIzOWE0YjY2N2ZhYjkzMjI1Y2RhY2YxIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVy
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0
U2VydmVyLmNwcApAQCAtMTAxLDEyICsxMDEsMTIgQEAgQ1N0cmluZyBXZWJLaXRUZXN0U2VydmVy
OjpnZXRXZWJTb2NrZXRVUklGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0CiB7CiAgICAg
Z19hc3NlcnRfZmFsc2UobV9iYXNlV2ViU29ja2V0VVJMLmlzTnVsbCgpKTsKICAgICBnX2Fzc2Vy
dF90cnVlKHBhdGggJiYgKnBhdGggPT0gJy8nKTsKLSAgICByZXR1cm4gVVJMKG1fYmFzZVdlYlNv
Y2tldFVSTCwgU3RyaW5nIHsgcGF0aCArIDEgfSkuc3RyaW5nKCkudXRmOCgpOyAvLyBJZ25vcmUg
dGhlIGxlYWRpbmcgc2xhc2guCisgICAgcmV0dXJuIFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0
cmluZzo6ZnJvbUxhdGluMShwYXRoICsgMSkpLnN0cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRo
ZSBsZWFkaW5nIHNsYXNoLgogfQogCiBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFVSSUZv
clBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsKLSAgICByZXR1cm4gVVJMKG1fYmFzZVVS
TCwgU3RyaW5nIHsgcGF0aCB9KS5zdHJpbmcoKS51dGY4KCk7CisgICAgcmV0dXJuIFVSTChtX2Jh
c2VVUkwsIFN0cmluZzo6ZnJvbUxhdGluMShwYXRoKSkuc3RyaW5nKCkudXRmOCgpOwogfQogCiB1
bnNpZ25lZCBXZWJLaXRUZXN0U2VydmVyOjpwb3J0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDJhODg1
MjcxNGFlZmYxYTIxOWQxN2RhNTJmOGU1N2U3ZWI2NWU5MTguLjQyZmMwYjRmMTNjMTRhZjQ2NDlj
NjY4NTEyM2YzNjEwMTBlMmZlZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Z3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcApAQCAtMTg1LDExICsxODUsMTEgQEAgc3Rh
dGljIFJlZjxKU09OOjpPYmplY3Q+IHRvSlNPTk9iamVjdChHVmFyaWFudCogdmFyaWFudCkKICAg
ICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgmaXRlciwgInsmc3Z9IiwgJmtleSwgJnZhbHVl
KSkgewogICAgICAgICBjb25zdCBHVmFyaWFudFR5cGUqIHR5cGUgPSBnX3ZhcmlhbnRfZ2V0X3R5
cGUodmFsdWUpOwogICAgICAgICBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBl
LCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldE9i
amVjdChTdHJpbmcgeyBrZXkgfSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7CisgICAgICAgICAgICBq
c29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nOjpmcm9tTGF0aW4xKGtleSksIHRvSlNPTk9iamVj
dCh2YWx1ZSkpOwogICAgICAgICBlbHNlIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFs
KHR5cGUsIEdfVkFSSUFOVF9UWVBFX1NUUklORykpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5z
ZXRTdHJpbmcoU3RyaW5nIHsga2V5IH0sIFN0cmluZyB7IGdfdmFyaWFudF9nZXRfc3RyaW5nKHZh
bHVlLCBudWxscHRyKSB9KTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhTdHJp
bmc6OmZyb21MYXRpbjEoa2V5KSwgU3RyaW5nOjpmcm9tTGF0aW4xKGdfdmFyaWFudF9nZXRfc3Ry
aW5nKHZhbHVlLCBudWxscHRyKSkpOwogICAgICAgICBlbHNlIGlmICh0eXBlICYmIGdfdmFyaWFu
dF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX0RPVUJMRSkpCi0gICAgICAgICAgICBq
c29uT2JqZWN0LT5zZXREb3VibGUoU3RyaW5nIHsga2V5IH0sIGdfdmFyaWFudF9nZXRfZG91Ymxl
KHZhbHVlKSk7CisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXREb3VibGUoU3RyaW5nOjpmcm9t
TGF0aW4xKGtleSksIGdfdmFyaWFudF9nZXRfZG91YmxlKHZhbHVlKSk7CiAgICAgfQogICAgIHJl
dHVybiBqc29uT2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVz
dGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4
IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2Vi
ZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFp
bi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0
YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJp
bmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCog
YU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1w
dHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAg
IFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAK
LSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwq
IGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGEx
NkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>
<flag name="commit-queue"
          id="485659"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457155</attachid>
            <date>2022-04-08 23:32:40 -0700</date>
            <delta_ts>2022-04-09 09:42:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220408233239.patch</filename>
            <type>text/plain</type>
            <size>208938</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgw
NDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFi
YTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBD
ZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogCiBT
dHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmco
bV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1
MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1fdmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAog
Q2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZp
Y2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1
ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVlNTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBm
ZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3Vy
bEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25zdCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JE
ZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJs
X2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6
ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcmIGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAg
dm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VI
ZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VIZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7
Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsK
KyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkKICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRy
aWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIgKyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDRmODlkOTczZWM5
MTFhNWQ5MDlkZGQ3ZTJlYmE5N2E1ZDRmYmNiMGYuLmEzYmU4YmU4MzI5MzIwYTU2ZmFlNDIwNWZh
OWJhOWVjMzhlYzg1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgc3RhdGljIFN0cmluZyBkZWZhdWx0Q29va2llSmFyUGF0aCgpCiAgICAg
cmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChGaWxlU3lzdGVtOjps
b2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgZGVmYXVsdEZpbGVOYW1lKTsKICNl
bHNlCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTI0MTcKLSAgICByZXR1cm4gU3RyaW5nIHsgZGVmYXVsdEZpbGVOYW1lIH07CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkZWZhdWx0RmlsZU5hbWUpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVs
cGVyLmNwcAppbmRleCBkMzliNjViNDQwZThmMmJiMTk1NGU2YzYwYTNlODkyM2IzZjQ2YWI2Li5k
M2VlMDdjMWVhMjJjZWExNzhmMTdjMGVkYjM1MzAyZjYxMGVjMWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCkBA
IC0zNDAsMTIgKzM0MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlU3Vt
bWFyeT4gY3JlYXRlU3VtbWFyeUluZm8oY29uc3QgVmVjdG9yPHVpbnQ4XwogCiBTdHJpbmcgdGxz
VmVyc2lvbihjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX2dldF92
ZXJzaW9uKHNzbCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFNTTF9nZXRfdmVy
c2lvbihzc2wpKTsKIH0KIAogU3RyaW5nIHRsc0NpcGhlck5hbWUoY29uc3QgU1NMKiBzc2wpCiB7
Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9DSVBIRVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50
X2NpcGhlcihzc2wpKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX0NJUEhF
Ul9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1
cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZp
eEN1cmwuY3BwCmluZGV4IGVmODk2MjI0ZmEwN2FhNWZkYTFmYTgyYThiY2NmMWY2YWQ3NzMwNTcu
LmQyZGUwZGQxZTlkZmMxMDVlMmM3N2NkZTllNzFhMWJiNDcxODMzM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3Vy
bC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIFN0cmluZyB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluSW50ZXJuYWwoY29uc3QgcHNsX2N0eF90KiBwc2wsIGNvbnN0IGMKIHsKICAgICAv
LyBwc2xfcmVnaXN0ZXJhYmxlX2RvbWFpbiByZXR1cm5zIGEgcG9pbnRlciB0byBkb21haW4ncyBk
YXRhIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gcHJpdmF0ZSBkb21haW4KICAgICBpZiAoY29uc3Qg
Y2hhciogdG9wUHJpdmF0ZURvbWFpbiA9IHBzbF9yZWdpc3RyYWJsZV9kb21haW4ocHNsLCBkb21h
aW4pKQotICAgICAgICByZXR1cm4gU3RyaW5nIHsgdG9wUHJpdmF0ZURvbWFpbiB9OworICAgICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcFByaXZhdGVEb21haW4pOwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcApp
bmRleCA1NzIwZTI0ZGY4YTAwYWZlN2E5YjE4ZDA0YjIwMjQ0ZTU5MTFjMWNmLi43MTdlYmRkMWJj
NjA5YTcxM2FmMTNkNTVhMDZlMGJiMDAxNjIwNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnRDdXJsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZXNvdXJjZUVycm9yIFN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybUJhZFJlc3BvbnNlRXJyb3IoKQogewogICAgIGludCBl
cnJvckNvZGUgPSAwOwogICAgIFVSTCBmYWlsaW5nVVJMOwotICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSIpOworICAgIFN0cmluZyBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25zZSJfcyk7CiAKICAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcigiQ1VSTCJfcywgZXJyb3JDb2RlLCBmYWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlw
dGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggYThkMjM3
MDY0OGQyNDY4ODEyY2U1YjZmOTUzOWFhYjA5NjJlODZiYy4uNmUwYTNkYzdhYzVhZGYyMmY1NTNm
ODExMTM2MzNhMTM1YWU5MjcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNw
cApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29r
aWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpCiAgICAgR1VuaXF1
ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2FsbF9jb29raWVzKGNvb2tpZVN0
b3JhZ2UoKSkpOwogICAgIGZvciAoYXV0byogaXRlbSA9IGNvb2tpZXMuZ2V0KCk7IGl0ZW07IGl0
ZW0gPSBnX3NsaXN0X25leHQoaXRlbSkpIHsKICAgICAgICAgR1VuaXF1ZVB0cjxTb3VwQ29va2ll
PiBjb29raWUoc3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KGl0ZW0tPmRhdGEpKTsKLSAgICAgICAg
aWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChTdHJpbmcgeyBz
b3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5nZXQoKSkgfSkgPT0gZG9tYWluKSB7CisgICAg
ICAgIGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5n
Ojpmcm9tTGF0aW4xKHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSkpID09IGRv
bWFpbikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCmluZGV4IDM0YTU3ZTVjMmMy
ZWI2OTg5N2E1NzNhZTQwMzJiMjMxYjk5OTNjMWQuLmNiYWJjMDE5MjYyNDBkMTE1NmYzODI2ODc2
MDA0MDVkOWM3ZGFmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dHJhbnNw
b3J0RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3Ry
aW5nJiByZWFzb25QaHJhc2UpCiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikgfSwgc3RhdHVzQ29kZSwg
ZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikp
LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOwogfQogCiBSZXNvdXJjZUVy
cm9yIFJlc291cmNlRXJyb3I6Omh0dHBFcnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSwgR0Vycm9y
KiBlcnJvcikKQEAgLTYxLDIyICs2MSwyMiBAQCBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6
OmF1dGhlbnRpY2F0aW9uRXJyb3IoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KG1lc3NhZ2UpOwogI2lmIFVTRShTT1VQMikKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJp
bmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBtZXNzYWdl
LT5zdGF0dXNfY29kZSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRp
bjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikpLCBtZXNzYWdlLT5z
dGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRvVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1l
c3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxz
ZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNP
VVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNzYWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3Ry
aW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3VwX21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdl
KSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVU
Rjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0K
IAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYg
ZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwg
ZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVy
cm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJy
b3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNpZ25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZp
Y2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExTX0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURf
Q0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOwor
ICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFy
a190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19UTFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBm
YWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVy
cm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlm
aWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVybiByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2Vk
ZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDllNTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6
dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFk
ZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFs
dWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0
ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVs
ZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAg
IG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6
ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2
ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdlYjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
U291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNw
b25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9
CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1l
c3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRf
cmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3Ry
aW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2Fn
ZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBzb3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2Nl
cnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBtX3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9n
ZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3JzKHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2
LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAg
ICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29u
ZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250
ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9N
T0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUgIT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBj
b250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRDb250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAg
ICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRh
dGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFs
VHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lh
bFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlwZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVz
Q29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1J
TUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3Vw
TWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNo
YXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVh
ZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJW
YWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhl
YWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlm
aWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCmluZGV4IGU2MTgxZjQ2NDc4NTU0MjU5YjYwMmVjODQ0YzdkNTU1ZTIwZGNiN2MuLjNlNTYz
NWM3NDVmMjQwZjZmNTQwNzRiM2Q1MTRkZGY1NmQ3MDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQpAQCAtMjA3LDcgKzIwNyw3
IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVDb2NvYTo6c2hvcnRNb250aExhYmVscygp
CiAgICAgfQogICAgIG1fc2hvcnRNb250aExhYmVscy5yZXNlcnZlQ2FwYWNpdHkoMTIpOwogICAg
IGZvciAoYXV0byYgbmFtZSA6IFdURjo6bW9udGhOYW1lKQotICAgICAgICBtX3Nob3J0TW9udGhM
YWJlbHMudW5jaGVja2VkQXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShuYW1lKSk7CisgICAgICAg
IG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQobmFtZSk7CiAgICAgcmV0dXJuIG1f
c2hvcnRNb250aExhYmVsczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2luL0xvY2FsZVdpbi5jcHAKaW5kZXggYTQ0ZTQzNmI2NWVjMzM0ZmU3NDg4YWQzZGQ3Y2VjYzg5
YTdiNDA0Zi4uZTlkMTgyODlkOTZhMTRkNWUyMWFjZjFhM2FiMWViYjNiMjVjNjE2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCkBAIC0zOTgs
MTYgKzM5OCwxNiBAQCB2b2lkIExvY2FsZVdpbjo6aW5pdGlhbGl6ZUxvY2FsZURhdGEoKQogICAg
IERXT1JEIGRpZ2l0U3Vic3RpdHV0aW9uID0gRGlnaXRTdWJzdGl0dXRpb24wdG85OwogICAgIGdl
dExvY2FsZUluZm8oTE9DQUxFX0lESUdJVFNVQlNUSVRVVElPTiwgZGlnaXRTdWJzdGl0dXRpb24p
OwogICAgIGlmIChkaWdpdFN1YnN0aXR1dGlvbiA9PSBEaWdpdFN1YnN0aXR1dGlvbjB0bzkpIHsK
LSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEi
KTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjMiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQiKTsKLSAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjUiKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjYiKTsKLSAgICAgICAgc3ltYm9scy5h
cHBlbmQoIjciKTsKLSAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiKTsKLSAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjkiKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjAiX3MpOworICAgICAgICBz
eW1ib2xzLmFwcGVuZCgiMSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIl9zKTsKKyAg
ICAgICAgc3ltYm9scy5hcHBlbmQoIjMiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCJf
cyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBl
bmQoIjYiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyJfcyk7CisgICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI4Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjkiX3MpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFN0cmluZyBkaWdpdHMgPSBnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FM
RV9TTkFUSVZFRElHSVRTKTsKICAgICAgICAgQVNTRVJUKGRpZ2l0cy5sZW5ndGgoKSA+PSAxMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRp
ZXNXaW4uY3BwCmluZGV4IDQwOTM1MzdkYTU1NzlkYjU0MzI2Y2M4OGI1NGU0YWIxN2EyZTIyZTMu
LmVmYjRjNTFmNjY3ZTIwMzBiMGRkMTE5YjQ4NTQyZjUwZDY2MGVkZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwCkBA
IC00NTYsNyArNDU2LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0YU9iamVjdCwg
RHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICB9IGVsc2UgaWYg
KFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHVybEZvcm1hdCgpLCAmc3RvcmUpKSkgewog
ICAgICAgICAvLyBVUkwgdXNpbmcgQVNDSUkKICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAgdXJsID0gZXh0
cmFjdFVSTChTdHJpbmcoZGF0YSksIHRpdGxlKTsKKyAgICAgICAgdXJsID0gZXh0cmFjdFVSTChT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSksIHRpdGxlKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0
b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxlYXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfQpA
QCAtNDc1LDcgKzQ3NSw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgICAgICAgICAv
LyBmaWxlbmFtZSB1c2luZyBhc2NpaQogICAgICAgICAgICAgY2hhciogZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKICAgICAgICAgICAgIGlmIChk
YXRhICYmIGRhdGFbMF0gJiYgKFBhdGhGaWxlRXhpc3RzQShkYXRhKSB8fCBQYXRoSXNVTkNBKGRh
dGEpKSkgewotICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVt
UGF0aChTdHJpbmcoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CisgICAgICAgICAgICAgICAgdXJs
ID0gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZzo6ZnJvbUxhdGluMShkYXRh
KSkuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUpCiAgICAgICAg
ICAgICAgICAgICAgICp0aXRsZSA9IHVybDsKICAgICAgICAgICAgIH0KQEAgLTUyNyw3ICs1Mjcs
NyBAQCBTdHJpbmcgZ2V0UGxhaW5UZXh0KElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0KQogICAgIH0g
ZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEocGxhaW5UZXh0Rm9ybWF0KCks
ICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIEFTQ0lJIHRleHQKICAgICAgICAgY2hhciogZGF0YSA9
IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKHN0b3JlLmhHbG9iYWwpKTsKLSAgICAgICAg
dGV4dCA9IFN0cmluZyhkYXRhKTsKKyAgICAgICAgdGV4dCA9IFN0cmluZzo6ZnJvbUxhdGluMShk
YXRhKTsKICAgICAgICAgR2xvYmFsVW5sb2NrKHN0b3JlLmhHbG9iYWwpOwogICAgICAgICBSZWxl
YXNlU3RnTWVkaXVtKCZzdG9yZSk7CiAgICAgfSBlbHNlIHsKQEAgLTYxMyw3ICs2MTMsNyBAQCBi
b29sIGNvbnRhaW5zRmlsZW5hbWVzKGNvbnN0IERyYWdEYXRhTWFwKikKIFJlZjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudEZyb21DRkhUTUwoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBj
Zmh0bWwpCiB7CiAgICAgLy8gb2J0YWluIGJhc2VVUkwgaWYgcHJlc2VudAotICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiKTsKKyAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6
Il9zKTsKICAgICBTdHJpbmcgc3JjVVJMOwogICAgIHVuc2lnbmVkIGxpbmVTdGFydCA9IGNmaHRt
bC5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3JjVVJMU3RyKTsKICAgICBpZiAobGluZVN0YXJ0ICE9
IC0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0
Q291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRl
ci5jcHAKaW5kZXggYjc2NDkxZDc2Njg3NTk2ZmE1NDZiZDdlODBmNWUxOGE0YTE3NTVjYi4uMDgw
MTE1Y2VlMTdlN2EzNTZhNjE1OTZkYTI2YzU1M2EzMDlmNzQ0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcApAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEdESU9iamVjdENvdW50ZXI6OkdESU9iamVjdENvdW50
ZXIoY29uc3QgY2hhciogaWRlbnRpZmllcikKIHsKLSAgICBpbml0KFN0cmluZyB7IGlkZW50aWZp
ZXIgfSk7CisgICAgaW5pdChTdHJpbmc6OmZyb21MYXRpbjEoaWRlbnRpZmllcikpOwogfQogCiBH
RElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3VudGVyKGNvbnN0IFN0cmluZyYgY2xhc3NOYW1l
LCB2b2lkKiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAppbmRleCA2Njg1ZWQ5OTM2NDY5ZmQwYTQzZmJlMjQxMmJiYzM4YmNmZjhkNTZk
Li40Y2UzMjhhODMxYzkwYmY2YmQyMjhlMWYwNzI0MDhkNjRiMzNhNDVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC04NDAsNyArODQwLDcg
QEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQsIFBsYWlu
VGV4dFVSTFJlYWRpbmdQb2xpY3ksIHN0ZDoKICAgICBpZiAoOjpJc0NsaXBib2FyZEZvcm1hdEF2
YWlsYWJsZShDRl9URVhUKSAmJiA6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKICAgICAgICAg
aWYgKEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCkpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyB0aGUgY2hhcmFjdGVycyBhcyBMYXRpbi0xLCBu
b3QgVVRGLTggb3IgZXZlbiBXaW5kb3dzIExhdGluLTEuIElzIHRoYXQgdGhlIHJpZ2h0IGVuY29k
aW5nPwotICAgICAgICAgICAgdGV4dC50ZXh0ID0gU3RyaW5nIHsgc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soY2JEYXRhKSkgfTsKKyAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZzo6
ZnJvbUxhdGluMShzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSk7CiAgICAg
ICAgICAgICBHbG9iYWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4OCw3ICs4ODgsNyBAQCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFtZSYgZnJhbWUs
IGNvbnN0IFNpbXBsZQogICAgICAgICAgICAgSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJk
RGF0YShDRl9URVhUKTsKICAgICAgICAgICAgIGlmIChjYkRhdGEpIHsKICAgICAgICAgICAgICAg
ICBjaGFyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKTsK
LSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgYXV0
byBzdHIgPSBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICAgICAgICAgICAgICBHbG9i
YWxVbmxvY2soY2JEYXRhKTsKICAgICAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgc3Ry
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0
b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldp
bi5jcHAKaW5kZXggNzY5MTRlMzQzNGE1NjAxMjIwNGFkNDFjMTgwZWY3YmI3NWRhNzE5NS4uMjJl
NzllN2JhZTZiNTM3NzA2MzI1MzYyYTA1YWU2NGM3ZDg4NWM0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0
b3I8U3RyaW5nPiYgdikKIHsKICAgICAvLyBGSVhNRTogU3RyaW5ncyBzaG91bGQgYmUgbG9jYWxp
emFibGUuCi0gICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiKTsKKyAgICB2LmFwcGVuZCgiSGlnaCBH
cmFkZSJfcyk7CiB9CiAKIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmco
dW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBVUkwmIHVybCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGls
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKaW5k
ZXggNTYzNzJiYjM1NmVjM2VjMzJkMWEwMWIzYzBmZDg5MmQyMmNhYTlkMi4uMzEzYzMyYTkzNmQ5
MTJmZDY4MzljNDA3NDdkMjM4NmI2YjUwYjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0veHIvb3BlbnhyL09wZW5YUlV0aWxzLmgKQEAgLTYwLDcgKzYwLDcgQEAgaW5saW5lIFN0
cmluZyByZXN1bHRUb1N0cmluZyhYclJlc3VsdCB2YWx1ZSwgWHJJbnN0YW5jZSBpbnN0YW5jZSkK
ICAgICBjaGFyIGJ1ZmZlcltYUl9NQVhfUkVTVUxUX1NUUklOR19TSVpFXTsKICAgICBYclJlc3Vs
dCByZXN1bHQgPSB4clJlc3VsdFRvU3RyaW5nKGluc3RhbmNlLCB2YWx1ZSwgYnVmZmVyKTsKICAg
ICBpZiAocmVzdWx0ID09IFhSX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBTdHJpbmcoYnVmZmVy
KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgIHJldHVy
biBtYWtlU3RyaW5nKCI8dW5rbm93biAiLCBpbnQodmFsdWUpLCAiPiIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcAppbmRleCBkNzFmNGQxMDU3ZWRiYjUzZWRhZTE2NWIyZmUyY2UwM2IxZjBlZTVjLi5i
OTI0ZGFkM2IyN2VlZjA0YzBmMmFhMjBmODgwNWYyZGNiMDY4N2M5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5j
cHAKQEAgLTE4OCwxMSArMTg4LDExIEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpw
YWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkgY29uc3QKIAogICAgIHN3aXRjaCAoY2FwYWJpbGl0aWVz
KCkucGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKSB7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpOb25lOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIk5vbmUiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9y
bWFsIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJFYWdlciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJFYWdlciJfcyk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNl
cnZpY2UuY3BwCmluZGV4IDU5MTg0NzBiODVjYWM4N2ZkYjljN2EzNTk3YzI4MWQxMGE1OWJlYzIu
Ljg4NmU3NjM0NDg3YTkwNmNjOTc2NjcwYTc3NDg0NDgxOTk4YWYyZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZl
ci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBpbnQgV2ViRHJpdmVyU2Vy
dmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tF
VF9TRVJWRVIpCiAgICAgU3RyaW5nIHRhcmdldFN0cmluZzsKICAgICBpZiAoY29uc3QgY2hhciog
dGFyZ2V0RW52VmFyID0gZ2V0ZW52KCJXRUJEUklWRVJfVEFSR0VUX0FERFIiKSkKLSAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgdGFyZ2V0RW52VmFyIH07CisgICAgICAgIHRhcmdldFN0
cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSh0YXJnZXRFbnZWYXIpOwogI2VuZGlmCiAgICAgZm9y
IChpbnQgaSA9IDEgOyBpIDwgYXJnYzsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFyZyA9
IGFyZ3ZbaV07CkBAIC03NSwxOSArNzUsMTkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVu
dChhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAg
ICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBwb3J0U3RyTGVuZ3RoID0gc3RybGVuKCItLXBvcnQ9Iik7CiAgICAgICAgIGlmICghc3Ry
bmNtcChhcmcsICItLXBvcnQ9IiwgcG9ydFN0ckxlbmd0aCkgJiYgcG9ydFN0cmluZy5pc051bGwo
KSkgewotICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZyhhcmcgKyBwb3J0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgcG9y
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBob3N0U3RyTGVuZ3RoID0gc3RybGVuKCItLWhvc3Q9Iik7
CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLWhvc3Q9IiwgaG9zdFN0ckxlbmd0aCkgJiYg
IWhvc3QpIHsKLSAgICAgICAgICAgIGhvc3QgPSBTdHJpbmcoYXJnICsgaG9zdFN0ckxlbmd0aCk7
CisgICAgICAgICAgICBob3N0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIGhvc3RTdHJMZW5n
dGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtOTcsMTMgKzk3LDEz
IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAg
ICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRhcmdl
dFN0cmluZyA9IFN0cmluZyB7IGFyZ3ZbaV0gfTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9
IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhcmdldFN0ckxlbmd0aCA9
IHN0cmxlbigiLS10YXJnZXQ9Iik7CiAgICAgICAgIGlmICghc3RybmNtcChhcmcsICItLXRhcmdl
dD0iLCB0YXJnZXRTdHJMZW5ndGgpICYmIHRhcmdldFN0cmluZy5pc051bGwoKSkgewotICAgICAg
ICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CisgICAg
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgdGFyZ2V0U3Ry
TGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTU2
Niw3ICs1NjYsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRTZXNzaW9uT3JDb21wbGV0
ZVdpdGhFcnJvcihKU09OOjpPYmplY3QmIHBhcmFtZXRlcnMsCiAKICAgICBpZiAoIW1fc2Vzc2lv
bi0+aXNDb25uZWN0ZWQoKSkgewogICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOwotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVz
ZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNz
aW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBo
YW5nLiJfcykpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE0LDE0ICs3
MTQsMTQgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0Nh
cGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgLy8gMi4xLiBJZiByZXF1
aXJlZCBjYXBhYmlsaXRpZXMgaXMgdW5kZWZpbmVkLCBzZXQgdGhlIHZhbHVlIHRvIGFuIGVtcHR5
IEpTT04gT2JqZWN0LgogICAgICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IEpTT046Ok9iamVj
dDo6Y3JlYXRlKCk7CiAgICAgfSBlbHNlIGlmICghKHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gcmVx
dWlyZWRDYXBhYmlsaXRpZXNWYWx1ZS0+YXNPYmplY3QoKSkpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlz
TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCiAgICAgLy8gMi4yLiBMZXQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGJlIHRo
ZSByZXN1bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50
IHJlcXVpcmVkIGNhcGFiaWxpdGllcy4KICAgICByZXF1aXJlZENhcGFiaWxpdGllcyA9IHZhbGlk
YXRlZENhcGFiaWxpdGllcygqcmVxdWlyZWRDYXBhYmlsaXRpZXMpOwogICAgIGlmICghcmVxdWly
ZWRDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMi
X3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC03MzYsNyArNzM2LDcgQEAg
VmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xp
c3QgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYg
KCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCkgewogICAgICAgICAgICAgLy8gMy4yLiBJZiBh
bGwgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGlzIG5vdCBhIEpTT04gTGlzdCwgcmV0dXJuIGVy
cm9yIHdpdGggZXJyb3IgY29kZSBpbnZhbGlkIGFyZ3VtZW50LgotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJp
bGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
Zmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICB9CkBAIC03NDksMTMgKzc0OSwxMyBAQCBWZWN0
b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNv
bnN0IEpTT046Ok9iamVjdCYgcAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaXJzdE1h
dGNoQ2FwYWJpbGl0aWVzTGlzdExlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gZmlyc3RNYXRj
aENhcGFiaWxpdGllcyA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0LT5nZXQoaSktPmFzT2Jq
ZWN0KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBm
b3VuZCBpbiBmaXJzdE1hdGNoIikpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1l
bnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCJfcykp
KTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgLy8gNS4xLiBM
ZXQgdmFsaWRhdGVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxp
ZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVudCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMu
CiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMo
KmZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmls
aXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52
YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTc5MSw3ICs3OTEs
NyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgIH0KIAogICAgIGlmIChtYXRjaGVkQ2Fw
YWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVh
dGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTgwMyw3ICs4MDMs
NyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVj
dD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogICAgIC8vIMKnOC4xIE5ldyBTZXNzaW9uLgog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI25ldy1zZXNzaW9uCiAgICAg
aWYgKG1fc2Vzc2lvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiTWF4aW11bSBudW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIikpKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6
OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNz
aW9ucyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODE5LDcgKzgxOSw3IEBA
IHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNvbm5lY3RU
b0Jyb3dzZXIoVmVjdG9yPENhcGFiaWxpdGllcz4mJiBjYXBhYmlsaXRpZXNMaXN0LCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChjYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5v
dENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTAxLDcgKzE5
MDEsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUGF1c2VBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgc3RkOjpvcAogCiAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBwYXVzZSBhY3Rpb24iKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBwYXVzZSBhY3Rpb24iX3MpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NOdWxsQWN0aW9uKGNvbnN0IFN0cmluZyYg
aWQsIEpTT046Ok9iamVjdCYgYQogewogICAgIGF1dG8gc3VidHlwZSA9IGFjdGlvbkl0ZW0uZ2V0
U3RyaW5nKCJ0eXBlIl9zKTsKICAgICBpZiAoc3VidHlwZSAhPSAicGF1c2UiKSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rp
b24gaXMgaW52YWxpZCBvciBtaXNzaW5nIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtZXRlciAndHlwZScgaW4gbnVsbCBhY3Rpb24gaXMgaW52YWxpZCBvciBtaXNz
aW5nIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTE5MzUs
NyArMTkzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlv
bihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgZWxzZSBpZiAoc3VidHlw
ZSA9PSAia2V5RG93biIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6
OktleURvd247CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Yga2V5IGFjdGlvbiBp
cyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAg
LTE5NTAsMTIgKzE5NTAsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBjYXNlIEFj
dGlvbjo6U3VidHlwZTo6S2V5RG93bjogewogICAgICAgICBhdXRvIGtleVZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgidmFsdWUiX3MpOwogICAgICAgICBpZiAoIWtleVZhbHVlKSB7Ci0gICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBt
aXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9k
b3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAg
ICB9CiAgICAgICAgIGF1dG8ga2V5ID0ga2V5VmFsdWUtPmFzU3RyaW5nKCk7CiAgICAgICAgIGlm
IChrZXkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iKTsK
KyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUn
IGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIC8vIEZJWE1FOiBjaGVjayBzaW5n
bGUgdW5pY29kZSBjb2RlIHBvaW50LgpAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byBkdXJhdGlvblZhbHVlID0gYWN0aW9uSXRlbS5nZXRW
YWx1ZSgiZHVyYXRpb24iX3MpKSB7CiAgICAgICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZh
bHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICAgICAgaWYgKCFkdXJhdGlvbikgewotICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52
YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24uZHVyYXRpb24gPSBk
dXJhdGlvbi52YWx1ZSgpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICAgICAgaWYgKGF1dG8gb3JpZ2luT2JqZWN0ID0gb3JpZ2luVmFsdWUtPmFzT2Jq
ZWN0KCkpIHsKICAgICAgICAgICAgIGF1dG8gZWxlbWVudElEID0gb3JpZ2luT2JqZWN0LT5nZXRT
dHJpbmcoU2Vzc2lvbjo6d2ViRWxlbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBpZiAo
IWVsZW1lbnRJRCkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4g
YWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9iamVjdCBpbiBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6
VHlwZTo6RWxlbWVudCwgZWxlbWVudElEIH07CkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBzdGF0aWMg
Ym9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBB
Y3Rpb24mIGFjdGlvbiwgcwogICAgICAgICAgICAgZWxzZSBpZiAob3JpZ2luID09ICJwb2ludGVy
IikKICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50
ZXJPcmlnaW46OlR5cGU6OlBvaW50ZXIsIHN0ZDo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIGludmFsaWQgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVy
TW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAg
ICAgaWYgKGF1dG8geFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieCJfcykpIHsKICAgICAg
ICAgYXV0byB4ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnhWYWx1ZSwgSU5UX01JTik7CiAgICAg
ICAgIGlmICgheCkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFy
YW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBhY3Rpb24u
eCA9IHgudmFsdWUoKTsKQEAgLTIwMzQsNyArMjAzNCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQ
b2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9u
LCBzCiAgICAgaWYgKGF1dG8geVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgieSJfcykpIHsK
ICAgICAgICAgYXV0byB5ID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnlWYWx1ZSwgSU5UX01JTik7
CiAgICAgICAgIGlmICgheSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBh
Y3Rpb24ueSA9IHkudmFsdWUoKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9p
bnRlclBhcmFtCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAicG9pbnRlckNhbmNlbCIpCiAgICAg
ICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJDYW5jZWw7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2YgcG9pbnRlciBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFs
aWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjA3NCwx
MiArMjA3NCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVy
QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGNhc2UgQWN0aW9uOjpT
dWJ0eXBlOjpQb2ludGVyRG93bjogewogICAgICAgICBhdXRvIGJ1dHRvblZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiYnV0dG9uIl9zKTsKICAgICAgICAgaWYgKCFidXR0b25WYWx1ZSkgewot
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24n
IGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZv
ciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBidXR0b24gPSB1bnNpZ25lZFZhbHVlKCpi
dXR0b25WYWx1ZSk7CiAgICAgICAgIGlmICghYnV0dG9uKSB7Ci0gICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9p
bnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQog
ICAgICAgICBhY3Rpb24uYnV0dG9uID0gYWN0aW9uTW91c2VCdXR0b24oYnV0dG9uLnZhbHVlKCkp
OwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9j
ZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgIGVsc2Ug
aWYgKHN1YnR5cGUgPT0gInNjcm9sbCIpCiAgICAgICAgIGFjdGlvblN1YnR5cGUgPSBBY3Rpb246
OlN1YnR5cGU6OlNjcm9sbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCIpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdo
ZWVsIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICB9CiAKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlv
bj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAg
ICAgICAgaWYgKGF1dG8gZGVsdGFYVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVgi
X3MpKSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpk
ZWx0YVhWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWCkgewotICAgICAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBp
cyBpbnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYWN0aW9uLmRlbHRhWCA9IGRlbHRhWC52YWx1ZSgpOwpAQCAtMjEzNiw3ICsyMTM2
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29u
c3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVlWYWx1
ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImRlbHRhWSJfcykpIHsKICAgICAgICAgICAgIGF1dG8g
ZGVsdGFZID0gdmFsdWVBc051bWJlckluUmFuZ2UoKmRlbHRhWVZhbHVlLCBJTlRfTUlOKTsKICAg
ICAgICAgICAgIGlmICghZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOwor
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVs
dGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFZID0g
ZGVsdGFZLnZhbHVlKCk7CkBAIC0yMTY0LDcgKzIxNjQsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpTT046Ok9iamVj
dCYgYQogCiAgICAgYXV0byBwYXJhbWV0ZXJzRGF0YSA9IHBhcmFtZXRlcnNEYXRhVmFsdWUtPmFz
T2JqZWN0KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzRGF0YSkgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5j
ZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTc5LDcgKzIxNzksNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQb2ludGVyUGFyYW1ldGVycz4gcHJvY2Vzc1BvaW50ZXJQYXJhbWV0ZXJzKEpT
T046Ok9iamVjdCYgYQogICAgIGVsc2UgaWYgKHBvaW50ZXJUeXBlID09ICJ0b3VjaCIpCiAgICAg
ICAgIHBhcmFtZXRlcnMucG9pbnRlclR5cGUgPSBQb2ludGVyVHlwZTo6VG91Y2g7CiAgICAgZWxz
ZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAncG9pbnRl
clR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52YWxpZCIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJU
eXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE5MCw3ICsyMTkw
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFj
dGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KIHsKICAgICBhdXRvIGFjdGlvblNlcXVlbmNl
ID0gYWN0aW9uU2VxdWVuY2VWYWx1ZS5hc09iamVjdCgpOwogICAgIGlmICghYWN0aW9uU2VxdWVu
Y2UpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgYWN0aW9uIHNlcXVlbmNl
IGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
YWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIwNSwxMyArMjIwNSwxMyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm5vbmUiKQogICAgICAgICBpbnB1dFNv
dXJjZVR5cGUgPSBJbnB1dFNvdXJjZTo6VHlwZTo6Tm9uZTsKICAgICBlbHNlIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9y
IG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlv
biBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAg
ICAgYXV0byBpZCA9IGFjdGlvblNlcXVlbmNlLT5nZXRTdHJpbmcoImlkIl9zKTsKICAgICBpZiAo
IWlkKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQn
IGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNz
aW5nIGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMjI3LDE4ICsyMjI3LDE4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9u
CiAKICAgICBhdXRvJiBpbnB1dFNvdXJjZSA9IHNlc3Npb24uZ2V0T3JDcmVhdGVJbnB1dFNvdXJj
ZShpZCwgaW5wdXRTb3VyY2VUeXBlLCBwb2ludGVyVHlwZSk7CiAgICAgaWYgKGlucHV0U291cmNl
LnR5cGUgIT0gaW5wdXRTb3VyY2VUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiQWN0aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSIp
OworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRv
ZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlID09ICBJbnB1dFNvdXJj
ZTo6VHlwZTo6UG9pbnRlciAmJiBpbnB1dFNvdXJjZS5wb2ludGVyVHlwZSAhPSBwb2ludGVyVHlw
ZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2lu
dGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIik7CisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gYWN0aW9uSXRlbXMgPSBhY3Rpb25T
ZXF1ZW5jZS0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uSXRlbXMpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBp
cyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQg
b3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9u
JiBzZXNzaW9uCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFjdGlvbkl0ZW1zTGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgYXV0byBhY3Rpb25JdGVtID0gYWN0aW9uSXRlbXMtPmdldChpKS0+
YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFhY3Rpb25JdGVtKSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFu
IG9iamVjdCIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24g
aW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogCkBAIC0yMjc4LDcgKzIyNzgsNyBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OnBlcmZvcm1BY3Rpb25zKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycywgRnVuY3RpbwogCiAgICAgYXV0byBhY3Rpb25zQXJyYXkgPSBwYXJhbWV0ZXJz
LT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25zQXJyYXkpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25z
JyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5v
dCBwcmVzZW50Il9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcCBiL1NvdXJjZS9XZWJE
cml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwCmluZGV4IGEwOWQwOTQxYmE3ZmQyOWVi
YmUzMWY3MzZmYzlhZGZkZWNlODk2YmUuLmRiOTdmZjBmYTI5MTFhZjE5MWI5MzY3MDE2ZjFlNTYx
ZTc1MjNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZp
Y2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0
KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygp
CiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxh
dGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5h
bWUgPSBTdHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9
IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBi
b29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
UGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0aWVz
LCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5i
cm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIgV0VCS0lUR1RL
X0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9Owog
ICAgIGNhcGFiaWxpdGllcy51c2VPdmVybGF5U2Nyb2xsYmFycyA9IHRydWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwIGIvU291cmNl
L1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAKaW5kZXggOTM2NzEyZjJmMTM1
ZWYxYzk4M2RjYTc1NDFiOGQ0NzRjNGYxOTZiZi4uYWIyMTY3MWNjYWRhMjVlNzM3MWY2MzY1ODJh
ZjM0M2RmNzNiYmRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVy
U2VydmljZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vydmlj
ZVdpbi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0
aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGll
cy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoIndpbiIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBTdHJpbmcoIndpbiJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIv
d3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCmluZGV4IDY1NmE2NzZhYjJjYTEyYTAwNWZhYzA5
MGM3ZTY2ZTBlNjM2NTkzZWEuLmRjOTFmYjNjYjUyN2ZkZWY3ZTNlMmQ3NDA1YTVlNmQyZWIyMDQw
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENh
cGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAg
ICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCIpOworICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBT
dHJpbmcoImxpbnV4Il9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2luZG93UmVjdCA9IGZhbHNl
OwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBX
ZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBj
b25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNl
Q2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIik7CisgICAgY2FwYWJpbGl0aWVzLmJyb3dz
ZXJCaW5hcnkgPSBTdHJpbmcoIk1pbmlCcm93c2VyIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuYnJv
d3NlckFyZ3VtZW50cyA9IFZlY3RvcjxTdHJpbmc+IHsgIi0tYXV0b21hdGlvbiJfcyB9OwogCiAg
ICAgYXV0byBicm93c2VyT3B0aW9ucyA9IG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJ3
cGU6YnJvd3Nlck9wdGlvbnMiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDFmMGI3ZTRlOTll
Y2QzMGQ4NWViNjU2Mjg4YjU2M2Q0MjM5MGNkNzguLjMwOWRhYzA3OWRkMjg3Yjg0MWE4MjAxNzNi
NTc0Yzc1OGU1MDlmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTkzMSw3ICs5MzEsNyBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKCkKICNpZiBV
U0UoU09VUDIpCiAgICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6dHJhbnNwb3J0RXJyb3Io
bV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU09VUF9TVEFUVVNfVE9PX01BTllfUkVESVJFQ1RTLCAi
VG9vIG1hbnkgcmVkaXJlY3RzIl9zKSk7CiAjZWxzZQotICAgICAgICBkaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBT
T1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJFQ1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVy
bCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSByZWRpcmVjdHMiKSkpOworICAgICAgICBk
aWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5n
KFNPVVBfU0VTU0lPTl9FUlJPUikpLCBTT1VQX1NFU1NJT05fRVJST1JfVE9PX01BTllfUkVESVJF
Q1RTLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KCJUb28gbWFueSBy
ZWRpcmVjdHMiKSkpOwogI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDM3LDcg
KzEwMzcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJlYWRDYWxsYmFjayhHSW5wdXRT
dHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmNSZXN1bHQqCiAgICAgICAgIGlmICh0YXNrLT5tX3Nv
dXBNZXNzYWdlKQogICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yOjpnZW5l
cmljR0Vycm9yKHRhc2stPm1fY3VycmVudFJlcXVlc3QudXJsKCksIGVycm9yLmdldCgpKSk7CiAg
ICAgICAgIGVsc2UgaWYgKHRhc2stPm1fZmlsZSkKLSAgICAgICAgICAgIHRhc2stPmRpZEZhaWwo
UmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9
LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVU
RjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNl
RXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4p
KSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0gZWxzZSBpZiAoYnl0ZXNSZWFkID4gMCkKQEAg
LTExMjcsNyArMTEyNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVxdWVzdE5l
eHRQYXJ0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmIGlucHV0U3RyZWFtCiAgICAgQVNTRVJUKCFt
X2lucHV0U3RyZWFtKTsKICAgICBtX2lucHV0U3RyZWFtID0gV1RGTW92ZShpbnB1dFN0cmVhbSk7
CiAgICAgYXV0byogaGVhZGVycyA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVhbV9nZXRfaGVh
ZGVycyhtX211bHRpcGFydElucHV0U3RyZWFtLmdldCgpKTsKLSAgICBTdHJpbmcgY29udGVudFR5
cGUgeyBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50LVR5cGUi
KSB9OworICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwogICAgIG1fcmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKG1fZmlyc3RSZXF1ZXN0LnVybCgpLCBleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMpLCBleHRyYWN0Q2hhcnNldEZyb21NZWRp
YVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgIG1fcmVzcG9uc2UudXBkYXRlRnJv
bVNvdXBNZXNzYWdlSGVhZGVycyhoZWFkZXJzKTsKQEAgLTEyNDksNyArMTI0OSw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0SGVhZGVycygpCiAgICAgICAgIGNvbnN0IGNoYXIq
IGhlYWRlck5hbWU7CiAgICAgICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3Ry
aW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKKyAgICAgICAgICAgIHJlcXVl
c3RIZWFkZXJzLnNldChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJv
bUxhdGluMShoZWFkZXJWYWx1ZSkpOwogICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5yZXF1ZXN0
SGVhZGVycyA9IFdURk1vdmUocmVxdWVzdEhlYWRlcnMpOwogCiAgICAgICAgIGFkZGl0aW9uYWxN
ZXRyaWNzLnByaW9yaXR5ID0gdG9OZXR3b3JrTG9hZFByaW9yaXR5KHNvdXBfbWVzc2FnZV9nZXRf
cHJpb3JpdHkobV9zb3VwTWVzc2FnZS5nZXQoKSkpOwpAQCAtMTY5MSw3ICsxNjkxLDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRGaWxlSW5mbyhHRmlsZUluZm8qIGluZm8pCiAg
ICAgICAgIG1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoInRleHQvaHRtbCJfcyk7CiAgICAgICAgIG1f
cmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKC0xKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBTdHJpbmcgY29udGVudFR5cGUgeyBnX2ZpbGVfaW5mb19nZXRfY29udGVudF90eXBlKGlu
Zm8pIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ19m
aWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShpbmZvKSk7CiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0
TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAg
ICAgICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgaWYgKG1fcmVzcG9uc2Uu
bWltZVR5cGUoKS5pc0VtcHR5KCkpCkBAIC0xNzE5LDcgKzE3MTksNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza1NvdXA6OnJlYWRGaWxlQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBOZQogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRy
PEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoR19JTlBVVF9TVFJFQU0oZ19m
aWxlX3JlYWRfZmluaXNoKGZpbGUsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSkpOwogICAgIGlm
IChlcnJvcikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2Zp
cnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAg
ICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0
UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBl
bHNlCiAgICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKFdURk1vdmUoaW5wdXRTdHJlYW0pKTsKIH0K
QEAgLTE3NDMsNyArMTc0Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZW51bWVyYXRl
RmlsZUNoaWxkcmVuQ2FsbGJhY2soR0ZpbGUqIGZpbGUsIEdBc3luY1Jlc3VsCiAgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgIEdSZWZQdHI8R0ZpbGVFbnVtZXJhdG9yPiBlbnVt
ZXJhdG9yID0gYWRvcHRHUmVmKGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fZmluaXNoKGZpbGUs
IHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKQotICAgICAgICB0YXNr
LT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3It
PmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJp
bmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICB0YXNrLT5kaWRGYWlsKFJl
c291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5k
b21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6
OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAgdGFzay0+ZGlk
UmVhZEZpbGUod2Via2l0RGlyZWN0b3J5SW5wdXRTdHJlYW1OZXcoV1RGTW92ZShlbnVtZXJhdG9y
KSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcAppbmRleCA5N2YwOTg1NGNmNWUzZTI4ZmUwMmViY2Y5MjIxYjM1ZGIyZTA5YWI2Li42
ZWVjMzcyZmNmNTU2MjFkNDUzNTgyMjQwNWQ0NmMwNGUzYWYwMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAK
QEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0
cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJlcnJvciIsIHJlaW50ZXJwcmV0X2Nh
c3Q8R0NhbGxiYWNrPihkaWRSZWNlaXZlRXJyb3JDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCksICJjbG9zZWQiLCByZWludGVy
cHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayksIHRoaXMpOwogCi0gICAgbV9j
aGFubmVsLmRpZENvbm5lY3QoU3RyaW5nIHsgc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf
cHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSB9LCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7Cisg
ICAgbV9jaGFubmVsLmRpZENvbm5lY3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfd2Vic29ja2V0
X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkpLCBhY2NlcHRlZEV4
dGVuc2lvbnMoKSk7CiAKICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSk7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29u
bmVjdF9ieV9kYXRhKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA4YmU1ZTY2ODY1OTBhNzYx
Mzc0ZDU5YWQzODdkODZiZmJhZmJiMjY4Li5hNzA2NTQwNTdiY2YwY2MxY2FmMTE4OWU0OTAwYzBk
ZWE3MzQwNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2lu
Z1VuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgbG9nTGV2ZWxT
dHJpbmcoKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICByZXR1cm4gU3RyaW5nIHsgZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZ2V0ZW52
KCJXRUJLSVRfREVCVUciKSk7CiAjZWxzZQogICAgIHJldHVybiBTdHJpbmcoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmlu
ZGV4IGZlOWI3ODAyNjA5M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYuLjkzNDVhNDdkMDhk
YzlmODY4ZWQzYzJjNjZiNmYzZDk4ZmE0OWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlIDx3dGYvU2FmZVN0cmVycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1VuaVN0ZEV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdD
b25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIEhBVkUoTElOVVhfTUVNRkRfSCkKQEAgLTE1Myw3ICsxNTQsNyBAQCBzdGF0aWMgaW50IGNy
ZWF0ZVNoYXJlZE1lbW9yeSgpCiAjZWxzZQogICAgIENTdHJpbmcgdGVtcE5hbWU7CiAgICAgZm9y
IChpbnQgdHJpZXMgPSAwOyBmaWxlRGVzY3JpcHRvciA9PSAtMSAmJiB0cmllcyA8IDEwOyArK3Ry
aWVzKSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIp
ICsgU3RyaW5nOjpudW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9tTnVtYmVy
KCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpOworICAg
ICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKCIvV0syU2hhcmVkTWVtb3J5LiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8
dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKICAgICAgICAgdGVtcE5hbWUgPSBuYW1lLnV0Zjgo
KTsKIAogICAgICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Z2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGli
L1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGZmMjIxY2E0OWEzYzYyOGQwZGJmNmIwOTJkYjI3
YjA0OGFhNWIzMWMuLmExNWQ3NTYwZDQ2NTgzYzVjMDNhYTYwYTYwMDNhY2M4ZDY0NTljZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShX
ZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0dXJuX2lm
X2ZhaWwodXJpKTsKIAotICAgIFVSTCB1cmwgeyBTdHJpbmcgeyB1cmkgfSB9OworICAgIFVSTCB1
cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEodXJpKSB9OwogICAgIGlmICh1cmwgPT0gcmVxdWVzdC0+
cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCmlu
ZGV4IDdmMDBlZmZkZWQ4N2FkODU2MDI4NjdhZDA2OGNkZmRmYmZhOTRjNTguLmQwYjQ5MDI2MGEw
NDVhZjk0YWYxMmY0MDk0ZTc0ODhjZmU2MTdhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApAQCAtNjYsNyArNjYsNyBA
QCBzdGF0aWMgaW5saW5lIFN0cmluZyBuZXh0VG9rZW4oRklMRSogZmlsZSkKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tTGF0aW4xKGJ1ZmZlcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRLZXlWYWx1
ZVBhaXIoV2ViTWVtb3J5U3RhdGlzdGljcyYgc3RhdHMsIGNvbnN0IFN0cmluZyYga2V5LCBzaXpl
X3QgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2Mx
MTFjZmVkYjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkx
NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9j
b2xIYW5kbGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCkKIAogdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJ
U2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJp
bmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAg
VVJMIHJlcXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1l
X3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9
PSAiZ3B1IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQz
Y2VmMjNiMjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0s
IEdBc3luYwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNw
b25zZS5nZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcg
Y29udGVudFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3Ap
LmRhdGEoKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAg
ICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJs
KCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklT
Y2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAg
ICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3Rh
dHVzTWVzc2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNw
KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0
UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAg
ICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJl
c3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQ
U3RhdHVzVGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNz
YWdlLmRhdGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVn
aXN0cnk6Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkp
OwpAQCAtMzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5p
c2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJp
di0+cmVzcG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJv
cihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihT
dHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dl
YkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBs
ZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdENvbG9yLmNwcAppbmRleCAyMmZjMGE4ZGZiMDhlYjJhZGI0MGI5MGM1YjMxNDM2
YWVlMjljYzFmLi4yMjc1ZDc0ODVjMTI0YzdmMzE0NGU2NTg4MzU1NDVmODg4NGZjMDZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcApAQCAt
MTA5LDcgKzEwOSw3IEBAIGdib29sZWFuIHdlYmtpdF9jb2xvcl9wYXJzZShXZWJLaXRDb2xvciog
Y29sb3IsIGNvbnN0IGdjaGFyKiBjb2xvclN0cmluZykKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChjb2xvciwgRkFMU0UpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yU3RyaW5nLCBG
QUxTRSk7CiAKLSAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VDb2xvcldpdGhvdXRDb250ZXh0KFN0cmluZyB7IGNvbG9yU3RyaW5nIH0pOworICAgIGF1dG8g
d2ViQ29yZUNvbG9yID0gV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRl
eHQoU3RyaW5nOjpmcm9tTGF0aW4xKGNvbG9yU3RyaW5nKSk7CiAgICAgaWYgKCF3ZWJDb3JlQ29s
b3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCA5MzMyMzJl
MmY2ODRlZDNjMmIzNWVlODIwMGMwYzY3OTgzZGVkYmY3Li40ZWUzYTViMDAzYmQwZmMzYzU1NTZj
NTU3YTdhN2NmOGQzZmZhZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
bGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2Vz
cykgewogICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQQzo6
QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAgICAgIHBhcmFtZXRlcnMu
aW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGli
cmFyeV9uYW1lKCkgfSk7CisgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5
TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21M
YXRpbjEod3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgp
KSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKICAgICAgICAgd3BlX2xvYWRlcl9pbml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28u
MSIpOwogICAgICAgICBpZiAoQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1Jl
cXVpcmVtZW50cygpKSB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVz
Y3JpcHRvciA9IElQQzo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVy
X2hvc3RfY3JlYXRlX2NsaWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAg
ICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVt
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVk
X2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICAgICAgcGFyYW1ldGVy
cy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVt
ZW50YXRpb25fbGlicmFyeV9uYW1lKCkpKTsKICAgICAgICAgfQogI2VsaWYgVVNFKEVHTCkKICAg
ICAgICAgcGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lID0gV2F5bGFuZENv
bXBvc2l0b3I6OnNpbmdsZXRvbigpLmRpc3BsYXlOYW1lKCk7CkBAIC0xMTYsOCArMTE2LDggQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBs
aWNhdGlvbl9nZXRfZGVmYXVsdCgpOwogICAgIGlmIChhcHApCi0gICAgICAgIHBhcmFtZXRlcnMu
YXBwbGljYXRpb25JRCA9IFN0cmluZyB7IGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lk
KGFwcCkgfTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZyB7IGdfZ2V0
X2FwcGxpY2F0aW9uX25hbWUoKSB9OworICAgICAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRpb25faWQoYXBw
KSk7CisgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEo
Z19nZXRfYXBwbGljYXRpb25fbmFtZSgpKTsKIAogICAgIHBhcmFtZXRlcnMuaW5zcGVjdG9yU2Vy
dmVyQWRkcmVzcyA9IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjppbnNwZWN0b3JTZXJ2ZXJB
ZGRyZXNzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAppbmRleCAzMzg0
ZmEyNThjMjBmNDQ2ZjIxMmRhZTJjMjRkYzlkODEyMmJhZDAxLi43NmU2Y2VmZTkwZGMwMGJlMzg0
YjM1N2ZkNjE5MWU2ZGVhZmE0MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUu
Y3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2
ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQ
cmVzcyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIHBsYXRmb3JtRXZlbnQpCiB7Ci0gICAgU3RyaW5nIGNvbW1hbmROYW1lIHsg
aW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFtZSA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogCiAgICAgaWYgKCFjb21t
YW5kTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21t
YW5kTmFtZSkuZXhlY3V0ZSgpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRm
b3JtS2V5CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBLZXlib2Fy
ZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKIHsKLSAgICBTdHJp
bmcgY29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRvIGNv
bW1hbmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7
CiAgICAgaWYgKGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAK
aW5kZXggNzY0NDNhOTQyNTRhZTRmZThlNThmODA3YmFhNTIxNTZjMzY3ZDExZC4uYzc3ZmY3OGNk
M2NkOTYyN2QxYWU3YjkzMGM4MTQ1NzA5NDY0NTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVu
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVk
aXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAg
ICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRp
bjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBl
KCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9l
c24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYTIxNjNm
ZDA5MmI0NTQzY2FhNWE1MjA5MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2FjODg3M2IxNzQzMWY5
ZWQ1NjdiMjFjOTliZmIyM2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
QWNjZXNzaWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nl
c3NpYmxlVGV4dEltcGwuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxl
VGV4dDo6c2V0QXR0cmlidXRlcyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNU
UiogYXQKIC8vIElBY2Nlc3NpYmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Z2V0X2F0dHJp
YnV0ZXMoQlNUUiogYXR0cmlidXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1v
ZGVsOmExIik7CisgICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSJfcyk7CiAgICAg
KmF0dHJpYnV0ZXMgPSBCU3RyaW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEyNGE1NzQw
NjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNkMDRkNjIx
YjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcsNyArMjE0
Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93
bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRv
IGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50
ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBo
YXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMg
dGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRy
ZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJE
YXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDExYWM3MTgy
ZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6
OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6OkdldExhc3RFcnJv
cigpICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKIAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0
Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEzM2VmMjA4
YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21M
YXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToK
KyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAg
ICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rp
b246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2Vy
dmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
cjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBx
dWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFm
YzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBh
MTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVh
ZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
IAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9
OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNU
X1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29w
eS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhh
c09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyAr
NTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAg
IFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0
Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3Jp
Z2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFk
Q29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25l
UmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAt
NzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxT
dHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmlu
ZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RS
VUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwt
PmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBN
b3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlS
Vk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIz
NCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3Vu
dCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxl
U3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
CmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIz
OTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToK
IFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wg
c3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShT
dHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZp
bGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRG
aWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAg
ICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0
YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDks
NjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgo
bGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJf
cywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJk
NDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBA
IC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVj
dG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Qi
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVy
LnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3
ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAw
KTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZElu
dE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0g
Pj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVp
bGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwg
J2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUi
X3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
QUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEp
KSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdD
JywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxk
ZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNh
cGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxk
ZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQ
RUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQg
dG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNv
bnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScs
ICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIp
OwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNU
X0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5Miwz
MiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygp
LmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2Ug
dGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5
KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0
IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmlu
Z0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJE
RUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVy
LnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywx
MyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBF
WFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2Fw
YWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgog
ICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNp
dHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9z
KSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3Mp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWls
ZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5z
aHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygp
OwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMx
MSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShl
cXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBi
dWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxk
ZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAg
ICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2
NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
MTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygi
MTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsK
IAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
IT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEy
MyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygi
MTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUy
LDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0
b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
MyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsK
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFi
ODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJj
MjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNX
aXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIp
OworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0
ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNT
RVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7
Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRf
RkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2
OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBA
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykK
IHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJp
bmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFT
Q0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0
cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdC
YWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBz
dHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3Vu
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4
IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2
NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdW
aWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAg
ICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENo
YXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhz
dHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3Rl
cnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3Ry
aW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAg
U3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJp
bmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZp
ZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVy
YXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVD
VF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1l
Q2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmlu
ZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAg
YXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBv
aW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0
b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5n
IHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBh
dXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwog
ICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICAr
K2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChX
VEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXco
U3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGlu
MSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhT
dHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFh
ZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAx
NWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBA
IC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFy
KQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJs
LnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cu
ZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAg
RVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9y
dCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNl
cigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1Rf
VFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBz
dGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyAr
ODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQog
VEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9j
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdT
aGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQu
b3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIp
LCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVT
VF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwg
dXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1
cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJr
ZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAg
IAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0
b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0s
IHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwg
dXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEi
X3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsK
ICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZh
bDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5
MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9z
KTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIi
LCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5
MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZh
bDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcs
IHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJf
cyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXky
IiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5
MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0
VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIs
ICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAg
ICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RW
ZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAi
Il9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAK
ICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsK
ICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9
dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9z
LCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAg
ICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7
CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkz
MCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAi
dGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
OSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3Ms
ICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMx
LCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9z
LCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwy
NSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQz
NTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRF
U1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhh
c2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQo
U3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsg
ImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBT
dHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5z
ZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAg
YXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZi
ZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1
MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9t
TGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3lu
dGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9F
USgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwg
c3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGlj
aXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwog
CiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAg
ICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwu
bGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0
ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRl
cmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNU
KFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3Ry
aW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hh
cmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcg
QEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3Rl
ZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBF
Q1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNf
c3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5
Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEo
MC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7
CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxl
YWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmlu
ZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9z
KS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcg
anVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFu
IGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAv
LyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9y
IG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAg
IC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmlu
aXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNp
YWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBF
WFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0
KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
c3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwot
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJT
VCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
LmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4
Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3Rh
cnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNU
X1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAg
IEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi
5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0
cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRl
bXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5n
MS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhp
c3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsK
LSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7
CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0
cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3
MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAg
LTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0Zh
aWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFy
IG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcg
eyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGlu
MShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50
RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAg
IAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFj
OGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4
MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxl
TW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25p
dG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21l
IGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRl
c3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZp
c2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFu
Z2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYy
OTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBk
ZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFk
ZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/
XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmlu
ZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBh
aXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90
ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9
KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhU
VFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6
IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3Ry
aW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90
ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUx
ZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdj
YTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQog
ewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVy
OjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3Ry
aW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29y
ZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRl
Y29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1
ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5n
KHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNU
X0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVr
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ind3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEy
Ny4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNv
bS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0
LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5j
b20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0t
LWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFp
biksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxl
LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7Yi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29t
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
Ojpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XD
hMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRl
eCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0
Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRF
U1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29w
ZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAg
ICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7
Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAg
ICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5z
Y29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9w
aWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5p
bnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNj
MmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2lu
Z0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhp
c3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcg
KzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29u
dGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05V
TEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhi
dWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6
OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwg
YnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3
ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5n
LmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hv
c3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywg
IiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlG
JUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJv
Z2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGlu
MSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNr
VVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVl
cnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVy
eSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAi
aG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxh
dGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywg
MCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJf
c30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0
LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1
bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hv
c3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVk
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsK
IAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsK
KyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmlu
ZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9
KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0
cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmco
KSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJM
KG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwg
eyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3Bh
dGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0
L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDJkZDdlNGFlN2Ew
MWMyOWVmMTRiZTg5ZmVkYWIyODVkOTc2Zjk4MDMuLjFhNWI1ZDZhZDhkZDE3NTg5Njg5OTQ0YmRi
Yzk0NjM2ODM3ZTgxNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzQ2hy
b21lQnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcg
PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoIFN0cmluZyB7IHVybCB9KSk7CisgICAgU3Ry
aW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxh
dGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiQ2hyb21l
IikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7CkBAIC00
NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJy
b3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2Vu
dEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0
cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwg
fSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChT
dHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNv
bnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5zKCJT
YWZhcmkiKSk7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZv
clVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9p
ZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVy
bCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwo
U3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2Vu
dEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9UUlVF
KHVhU3RyaW5nLmNvbnRhaW5zKCJNYWNpbnRvc2giKSk7CiAgICAgRVhQRUNUX1RSVUUodWFTdHJp
bmcuY29udGFpbnMoIk1hYyBPUyBYIikpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgdm9pZCBh
c3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVybCkK
IC8vIHRoYXQgdGhlIHN0YW5kYXJkIHVzZXIgYWdlbnQgc2hvdWxkIGJlIHVzZWQuKQogc3RhdGlj
IHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRW1wdHlRdWlyayhjb25zdCBjaGFyKiB1cmwp
CiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0
cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVh
U3RyaW5nLmlzTnVsbCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3
NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFl
NzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpA
QCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAg
IC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRp
b24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFu
ZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3Qg
YW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3Vs
ZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJh
Y2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4g
dGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhl
ciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcg
KndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFi
YXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRw
cyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxl
KQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRo
ZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0
ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkK
ICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBk
YXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZv
cm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0
KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNl
IHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1v
dmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAg
ICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5
RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3
ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJh
Y2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1
NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVh
ZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2Vj
SWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5
UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4
Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6
IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6
Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIp
OworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJp
bmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5N
M0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTcz
LDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZp
emhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcy
RG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhB
dUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2
L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5
cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsK
IAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2
YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5j
b2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4
MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2
YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGlj
IHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQ
YXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0
cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNp
emUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0g
U3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3Rp
bmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5r
YWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVx
dWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0g
a2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVx
dWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMg
dm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1Bh
cnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0
LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5n
KCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tl
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0g
c2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJj
ZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3Mp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBz
dGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tl
bkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFz
ZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0
ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Nl
Y3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQo
JyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgx
MDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5
NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAg
LTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJO
YXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wg
eyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5v
LCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciog
c291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRp
b25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVP
cmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RT
d2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJ
TGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFs
IGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3Jp
Z2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAg
ICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAg
ICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNl
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsK
ICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNv
dXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VD
T0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsK
ICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwi
X3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25D
T09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVAp
Ci0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25I
ZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25D
T0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3Rp
bmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6
OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBI
VFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGlj
IHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25z
dCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0g
cHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBh
ZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2Ft
ZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUt
Y29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdp
biIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVp
cmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0g
c291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1j
b3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQg
PSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9
PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NP
cmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8
fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0s
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9u
ZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsg
fSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2Fm
ZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWly
ZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1
c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3Vy
Y2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVk
aXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBk
b2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olll
cywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5X
aXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRp
cmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAu
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmln
aW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5v
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsg
fSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0
aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcw
ZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1
bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2
ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlv
bi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1s
IiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3Mg
fSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUi
LCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlw
dCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1d
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0
KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEo
KSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3Nm
dWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUz
ZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRt
bD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1s
PiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVu
dEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48
L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8
aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAt
Mjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBu
YXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1s
PiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMDU0MDU1Mzdh
NzU3NDhkMGZlZmY4ZGY1OGQ0NjUwNmIwNmQyMTVhZS4uZDAyMGQ2ZThlYzg3YTczNTcwNGFmNWY1
YmYyYmE4MjRmZGZiOGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0U1NMLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjZXJ0aWZpY2F0
ZSkpOwogICAgICAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAgICAgICAgIG1fdGxz
RXJyb3JzID0gdGxzRXJyb3JzOwotICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5nIHsg
ZmFpbGluZ1VSSSB9KTsKKyAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZzo6ZnJvbUxh
dGluMShmYWlsaW5nVVJJKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNw
cAppbmRleCBiN2MxY2MxYzVjNTNiOTcwNmVkZDRiYzRmNzcyY2EyOTYzZDEzNDJmLi5kODU1MDhh
NWQzMmU2YTc3MDVjMzBlN2VlZTk4NmE4ODFlMTQwNGRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtMTMxLDcg
KzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHdpbmRvd1Byb3BlcnRpZXNOb3Rp
ZnlDYWxsYmFjayhHT2JqZWN0KiwgR1BhcmFtU3BlYyogcGFyYW1TcGVjLCBVSUNsaWVudFRlc3Qq
IHRlc3QpCiAgICAgewotICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFuZ2VkLmFk
ZChTdHJpbmcgeyBnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSB9KTsKKyAgICAgICAg
dGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFdl
YktpdFdlYlZpZXcqIHZpZXdDcmVhdGVDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uLCBVSUNsaWVudFRlc3QqIHRlc3QpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4
dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcAppbmRleCBjNTY5MDJhMjI5NzA3MjJkM2NjMTE2YmJhMzEwZGRiNmI0
M2RlODliLi43ZGVkNjZjZTY2ZGM1YTRhYTMzMjM3MTA5MGEwYTQ5MGU5OGUzNzU4IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
RXh0ZW5zaW9ucy5jcHAKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0
ZW5zaW9uUGFnZUlEKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIC8vIFJl
Z2lzdGVyIGEgY3VzdG9tIFVSSSBzY2hlbWUgdG8gdGVzdCBoaXN0b3J5IG5hdmlnYXRpb24uCiAg
ICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUodGVzdC0+bV93ZWJDb250
ZXh0LmdldCgpLCAiZm9vIiwKICAgICAgICAgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVx
dWVzdCwgZ3BvaW50ZXIpIHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nIHsgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAgICAgICAgICAg
VVJMIHVybCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVz
dF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4g
aW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKICAg
ICAgICAgICAgIGNoYXIqIGh0bWwgPSBnX3N0cmR1cF9wcmludGYoIjxodG1sPjxoZWFkPjx0aXRs
ZT4lczwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgdXJsLmhvc3QoKSA9PSAi
aG9zdDUiID8gIlRpdGxlNSIgOiAiVGl0bGU2Iik7CiAgICAgICAgICAgICBnX21lbW9yeV9pbnB1
dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtLmdldCgp
KSwgaHRtbCwgc3RybGVuKGh0bWwpLCBnX2ZyZWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAK
aW5kZXggYTQzYzkzZWE5ODRjM2E2ZmI1ZmI0MDlhMjA3YmM3Zjg2NTczY2Q3ZC4uMzEyMDc4Zjdj
YTRhYTkwNzlkYjQ2ODMwOTQ4MDVlYWJlZjkyMzhmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQu
Y3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiBTdHJpbmcgZ2VuZXJhdGVIVE1MQ29u
dGVudCh1bnNpZ25lZCBjb250ZW50TGVuZ3RoKQogewotICAgIFN0cmluZyBiYXNlU3RyaW5nKCJh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiKTsKKyAgICBTdHJpbmcgYmFzZVN0
cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIl9zKTsKICAgICB1bnNp
Z25lZCBiYXNlTGVuZ3RoID0gYmFzZVN0cmluZy5sZW5ndGgoKTsKIAogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBiMDRj
NDcyMzc4NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNv
cHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVD
YW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRl
eHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCks
IDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05T
UGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhb
dXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3
LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUxMTg3
MjA2MzViMGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2JmIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVV
UkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3Rl
VVJMLm1tCkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFz
dGVVUkwpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9y
RWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0
cmluZyAqdGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TENyYXNoLm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEu
LmM0M2FlY2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihO
U1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZh
U2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVk
QnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1Mi
KSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3Ry
aW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0YjY5
ZjczMzBlZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJkNzU0
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2
Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29u
bmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUi
LCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9
LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRW
YWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9z
IH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAg
ICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJl
cXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRl
bnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpA
QCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlm
aWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3
QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2
aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgw
TlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAg
ICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlY
SHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFz
ZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRl
Y29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhU
VFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpx
RXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3
bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIK
ICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3
dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsK
KyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBk
ZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAg
ICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKaW5k
ZXggMjgwMzQxMTQwZjAyZjg0Zjc5NDk0ZWVjNGI3ZTM2YjExYzA5OWQ4My4uOGRmYTRlMjNmNGU0
OTAyNTJiMzlhNGI2NjdmYWI5MzIyNWNkYWNmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKQEAgLTEwMSwx
MiArMTAxLDEyIEBAIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0V2ViU29ja2V0VVJJRm9y
UGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewogICAgIGdfYXNzZXJ0X2ZhbHNlKG1fYmFz
ZVdlYlNvY2tldFVSTC5pc051bGwoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShwYXRoICYmICpwYXRo
ID09ICcvJyk7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmluZyB7IHBh
dGggKyAxIH0pLnN0cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNsYXNoLgor
ICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmc6OmZyb21MYXRpbjEocGF0
aCArIDEpKS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KIH0K
IAogQ1N0cmluZyBXZWJLaXRUZXN0U2VydmVyOjpnZXRVUklGb3JQYXRoKGNvbnN0IGNoYXIqIHBh
dGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZyB7IHBhdGggfSku
c3RyaW5nKCkudXRmOCgpOworICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmc6OmZyb21M
YXRpbjEocGF0aCkpLnN0cmluZygpLnV0ZjgoKTsKIH0KIAogdW5zaWduZWQgV2ViS2l0VGVzdFNl
cnZlcjo6cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
VUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAppbmRleCAyYTg4NTI3MTRhZWZmMWEyMTlkMTdkYTUy
ZjhlNTdlN2ViNjVlOTE4Li40MmZjMGI0ZjEzYzE0YWY0NjQ5YzY2ODUxMjNmMzYxMDEwZTJmZWUz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xs
ZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJv
bGxlckd0ay5jcHAKQEAgLTE4NSwxMSArMTg1LDExIEBAIHN0YXRpYyBSZWY8SlNPTjo6T2JqZWN0
PiB0b0pTT05PYmplY3QoR1ZhcmlhbnQqIHZhcmlhbnQpCiAgICAgd2hpbGUgKGdfdmFyaWFudF9p
dGVyX2xvb3AoJml0ZXIsICJ7JnN2fSIsICZrZXksICZ2YWx1ZSkpIHsKICAgICAgICAgY29uc3Qg
R1ZhcmlhbnRUeXBlKiB0eXBlID0gZ192YXJpYW50X2dldF90eXBlKHZhbHVlKTsKICAgICAgICAg
aWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfVkFS
RElDVCkpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nIHsga2V5IH0s
IHRvSlNPTk9iamVjdCh2YWx1ZSkpOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0
KFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCB0b0pTT05PYmplY3QodmFsdWUpKTsKICAgICAgICAg
ZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQ
RV9TVFJJTkcpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZyB7IGtl
eSB9LCBTdHJpbmcgeyBnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikgfSk7Cisg
ICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nOjpmcm9tTGF0aW4xKGtleSks
IFN0cmluZzo6ZnJvbUxhdGluMShnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikp
KTsKICAgICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBH
X1ZBUklBTlRfVFlQRV9ET1VCTEUpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0RG91Ymxl
KFN0cmluZyB7IGtleSB9LCBnX3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOworICAgICAgICAg
ICAganNvbk9iamVjdC0+c2V0RG91YmxlKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBnX3Zhcmlh
bnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOwogICAgIH0KICAgICByZXR1cm4ganNvbk9iamVjdDsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rvb2xz
L2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4OTM3
ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4M2Zl
YTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAK
KysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyArNTcs
MTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3VtbWFy
eVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBTdHJp
bmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9IGFO
dWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsKKyAg
ICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVtcHR5
U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJpdFN0
cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6ZnJv
bUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBsID0g
YW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYxNlN0
cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457168</attachid>
            <date>2022-04-09 09:42:33 -0700</date>
            <delta_ts>2022-04-09 10:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409094233.patch</filename>
            <type>text/plain</type>
            <size>214003</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvY29jb2EvTG9jYWxlQ29jb2EubW0KaW5kZXggZTYxODFmNDY0Nzg1NTQyNTliNjAyZWM4NDRj
N2Q1NTVlMjBkY2I3Yy4uM2U1NjM1Yzc0NWYyNDBmNmY1NDA3NGIzZDUxNGRkZjU2ZDcwMzgwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29h
Lm1tCkBAIC0yMDcsNyArMjA3LDcgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUNvY29h
OjpzaG9ydE1vbnRoTGFiZWxzKCkKICAgICB9CiAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnJlc2Vy
dmVDYXBhY2l0eSgxMik7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogV1RGOjptb250aE5hbWUpCi0g
ICAgICAgIG1fc2hvcnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKG5hbWUpKTsKKyAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChu
YW1lKTsKICAgICByZXR1cm4gbV9zaG9ydE1vbnRoTGFiZWxzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCBhNDRlNDM2YjY1ZWMz
MzRmZTc0ODhhZDNkZDdjZWNjODlhN2I0MDRmLi5lOWQxODI4OWQ5NmExNGQ1ZTIxYWNmMWEzYWIx
ZWJiM2IyNWM2MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xv
Y2FsZVdpbi5jcHAKQEAgLTM5OCwxNiArMzk4LDE2IEBAIHZvaWQgTG9jYWxlV2luOjppbml0aWFs
aXplTG9jYWxlRGF0YSgpCiAgICAgRFdPUkQgZGlnaXRTdWJzdGl0dXRpb24gPSBEaWdpdFN1YnN0
aXR1dGlvbjB0bzk7CiAgICAgZ2V0TG9jYWxlSW5mbyhMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9O
LCBkaWdpdFN1YnN0aXR1dGlvbik7CiAgICAgaWYgKGRpZ2l0U3Vic3RpdHV0aW9uID09IERpZ2l0
U3Vic3RpdHV0aW9uMHRvOSkgewotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMCIpOwotICAgICAg
ICBzeW1ib2xzLmFwcGVuZCgiMSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiIpOwotICAg
ICAgICBzeW1ib2xzLmFwcGVuZCgiMyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCIpOwot
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiIp
OwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgi
OCIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOSIpOworICAgICAgICBzeW1ib2xzLmFwcGVu
ZCgiMCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIxIl9zKTsKKyAgICAgICAgc3ltYm9s
cy5hcHBlbmQoIjIiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMyJfcyk7CisgICAgICAg
IHN5bWJvbHMuYXBwZW5kKCI0Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiX3MpOwor
ICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3
Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjgiX3MpOworICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiOSJfcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIGRpZ2l0cyA9IGdldExv
Y2FsZUluZm9TdHJpbmcoTE9DQUxFX1NOQVRJVkVESUdJVFMpOwogICAgICAgICBBU1NFUlQoZGln
aXRzLmxlbmd0aCgpID49IDEwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZj
Yzg4YjU0ZTRhYjE3YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYw
ZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0
aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRh
T2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZp
bGVuYQogICAgIH0gZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9y
bWF0KCksICZzdG9yZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwotICAgICAgICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAg
ICB1cmwgPSBleHRyYWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAg
ICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRp
dW0oJnN0b3JlKTsKICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0
YU9iamVjdCogZGF0YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBm
aWxlbmEKICAgICAgICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBj
aGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkp
OwogICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRh
dGEpIHx8IFBhdGhJc1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0gVVJMOjpm
aWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsK
KyAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3Ry
aW5nOjpmcm9tTGF0aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAgICAgICAg
IGlmICh0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAgICAgICAg
ICAgfQpAQCAtNTI3LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3Qq
IGRhdGFPYmplY3QpCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0
YShwbGFpblRleHRGb3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAog
ICAgICAgICBjaGFyKiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUu
aEdsb2JhbCkpOwotICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEds
b2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpA
QCAtNjEzLDcgKzYxMyw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFN
YXAqKQogUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCog
ZG9jLCBjb25zdCBTdHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBw
cmVzZW50Ci0gICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0cmluZyBz
cmNVUkxTdHIoInNvdXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWdu
ZWQgbGluZVN0YXJ0ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwog
ICAgIGlmIChsaW5lU3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAppbmRleCBiNzY0OTFkNzY2ODc1OTZmYTU0NmJkN2U4
MGY1ZTE4YTRhMTc1NWNiLi4wODAxMTVjZWUxN2U3YTM1NmE2MTU5NmRhMjZjNTUzYTMwOWY3NDQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIu
Y3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogR0RJT2JqZWN0Q291
bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBjaGFyKiBpZGVudGlmaWVyKQogewotICAgIGlu
aXQoU3RyaW5nIHsgaWRlbnRpZmllciB9KTsKKyAgICBpbml0KFN0cmluZzo6ZnJvbUxhdGluMShp
ZGVudGlmaWVyKSk7CiB9CiAKIEdESU9iamVjdENvdW50ZXI6OkdESU9iamVjdENvdW50ZXIoY29u
c3QgU3RyaW5nJiBjbGFzc05hbWUsIHZvaWQqIGluc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNm
YmUyNDEyYmJjMzhiY2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIz
M2E0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJk
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5j
cHAKQEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBs
YWluVGV4dCYgdGV4dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6
OklzQ2xpcGJvYXJkRm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZCht
X293bmVyKSkgewogICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0
YShDRl9URVhUKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFy
YWN0ZXJzIGFzIExhdGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMg
dGhhdCB0aGUgcmlnaHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcg
eyBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAg
dGV4dC50ZXh0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxM
b2NrKGNiRGF0YSkpKTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAg
ICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcg
Kzg4OCw3IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZy
YWdtZW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JE
YXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0
YSkgewogICAgICAgICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihH
bG9iYWxMb2NrKGNiRGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsK
KyAgICAgICAgICAgICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwog
ICAgICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6
Q2xvc2VDbGlwYm9hcmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRG
cm9tVGV4dChjb250ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMx
ODBlZjdiYjc1ZGE3MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9y
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9y
V2luLmNwcApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1
cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJp
bmdzIHNob3VsZCBiZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOwor
ICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tl
eUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVu
Z2UsIGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
eHIvb3BlbnhyL09wZW5YUlV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVu
eHIvT3BlblhSVXRpbHMuaAppbmRleCA1NjM3MmJiMzU2ZWMzZWMzMmQxYTAxYjNjMGZkODkyZDIy
Y2FhOWQyLi4zMTNjMzJhOTM2ZDkxMmZkNjgzOWM0MDc0N2QyMzg2YjZiNTBiMjMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaApAQCAtNjAs
NyArNjAsNyBAQCBpbmxpbmUgU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBY
ckluc3RhbmNlIGluc3RhbmNlKQogICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5H
X1NJWkVdOwogICAgIFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2Us
IHZhbHVlLCBidWZmZXIpOwogICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKLSAgICAgICAg
cmV0dXJuIFN0cmluZyhidWZmZXIpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4x
KGJ1ZmZlcik7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtub3duICIsIGludCh2YWx1ZSks
ICI+Iik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1
YjJmZTJjZTAzYjFmMGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IFNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAg
c3dpdGNoIChjYXBhYmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBj
YXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUi
KTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0
cmF0ZWd5OjpOb3JtYWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6
RWFnZXI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIkVhZ2VyIl9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9X
ZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3
YTM1OTdjMjgxZDEwYTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThh
ZjJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3
IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lm
IFVTRShJTlNQRUNUT1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwog
ICAgIGlmIChjb25zdCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9UQVJH
RVRfQUREUiIpKQotICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIg
fTsKKyAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVudlZh
cik7CiAjZW5kaWYKICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAgICAg
ICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2Vi
RHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAg
ICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBF
WElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3Ry
aW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxh
dGluMShhcmd2W2ldKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0i
KTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAm
JiBwb3J0U3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5n
KGFyZyArIHBvcnRTdHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMShhcmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGgg
PSBzdHJsZW4oIi0taG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0i
LCBob3N0U3RyTGVuZ3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhh
cmcgKyBob3N0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRp
bjEoYXJnICsgaG9zdFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCkBAIC05NywxMyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2
WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAg
ICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgdGFyZ2V0U3RyTGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYgKCFz
dHJuY21wKGFyZywgIi0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5n
LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsgdGFy
Z2V0U3RyTGVuZ3RoKTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxh
dGluMShhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KICNlbmRpZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6
ZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywK
IAogICAgIGlmICghbV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lv
biA9IG51bGxwdHI7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNl
c3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVz
ZSBvZiBwYWdlIGNyYXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC03MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2
ZXJTZXJ2aWNlOjpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAg
ICAgICAvLyAyLjEuIElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0
aGUgdmFsdWUgdG8gYW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJp
bGl0aWVzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWly
ZWRDYXBhYmlsaXRpZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlz
IGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1
bWVudCwgU3RyaW5nKCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykp
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJl
ZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJp
bGl0aWVzIHdpdGggYXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVk
Q2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGll
cyk7CiAgICAgaWYgKCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5
c01hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAK
QEAgLTczNiw3ICs3MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJz
dE1hdGNoQ2FwYWJpbGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNB
cnJheSgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAg
ICAgICAgICAvLyAzLjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEg
SlNPTiBMaXN0LCByZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQu
Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2gg
aXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0
OSwxMyArNzQ5LDEzIEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnBy
b2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgYXV0byBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGll
c0xpc3QtPmdldChpKS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3Vu
ZCBpbiBmaXJzdE1hdGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogICAgICAgICAvLyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1
bHQgb2YgdHJ5aW5nIHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0
IG1hdGNoIGNhcGFiaWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZh
bGlkYXRlZENhcGFiaWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRB
cmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1h
dGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAg
IH0KIApAQCAtNzkxLDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNl
cnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQog
CiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxp
dGllcyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwo
Q29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWls
ZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lv
bihSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8g
wqc4LjEgTmV3IFNlc3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZl
ci8jbmV3LXNlc3Npb24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNz
aW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMi
KSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBu
dW1iZXIgb2YgYWN0aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJl
ZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJp
dmVyU2VydmljZTo6Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFi
aWxpdGllc0xpc3QsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2Fw
YWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmco
IkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlv
bihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAg
ICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYg
KCFkdXJhdGlvbikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGlu
IHBhdXNlIGFjdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5
MTMsNyArMTkxMyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxB
Y3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0
eXBlID0gYWN0aW9uSXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9
ICJwYXVzZSIpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlv
biBpcyBpbnZhbGlkIG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0
aW9uPiBwcm9jZXNzS2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMK
ICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlw
ZSA9IEFjdGlvbjo6U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0
eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JiBhYwogICAgIGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1
dG8ga2V5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlm
ICgha2V5VmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAndmFsdWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNT
dHJpbmcoKTsKICAgICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtl
eSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9z
KTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAg
Ly8gRklYTUU6IGNoZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5
OTQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0
JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBk
dXJhdGlvbiA9IHVuc2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1
cmF0aW9uKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IGFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBA
QCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3Qg
PSBvcmlnaW5WYWx1ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQg
PSBvcmlnaW5PYmplY3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigp
KTsKICAgICAgICAgICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdl
YiBlbGVtZW50IG9iamVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVs
ZW1lbnQgb2JqZWN0IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmln
aW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUs
NyArMjAxNSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpP
YmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlm
IChvcmlnaW4gPT0gInBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQ
b2ludGVyT3JpZ2luIHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0
IH07CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAg
ICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdp
bicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZh
bHVlKCJ4Il9zKSkgewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZh
bHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOwor
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAgICAgICAgIGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAg
c3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9u
SXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVt
LmdldFZhbHVlKCJ5Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5n
ZSgqeVZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlv
biIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5
JyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAgICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihj
b25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJw
b2ludGVyQ2FuY2VsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6
UG9pbnRlckNhbmNlbDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9p
bnRlciBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFj
dGlvbj4gcHJvY2Vzc1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFt
CiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8g
YnV0dG9uVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBp
ZiAoIWJ1dHRvblZhbHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlv
biIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdi
dXR0b24nIGlzIG1pc3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRv
biA9IHVuc2lnbmVkVmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1
dHRvbihidXR0b24udmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09O
OjpPYmplY3QmCiAgICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0
aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFj
dGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBp
ZCwgSlNPTjo6T2JqZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0
ZW0uZ2V0VmFsdWUoImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFs
dWVBc051bWJlckluUmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlm
ICghZGVsdGFYKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZh
bGlkIGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVl
KCk7CkBAIC0yMTM2LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHBy
b2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAg
IGlmIChhdXRvIGRlbHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkg
ewogICAgICAgICAgICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZ
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52
YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1hdGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGFjdGlvbi5kZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBh
cmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFy
YW1ldGVyc0RhdGFWYWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIg
cGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0
Il9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyAr
MjE3OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNz
UG9pbnRlclBhcmFtZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5
cGUgPT0gInRvdWNoIikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJU
eXBlOjpUb3VjaDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFy
YW1ldGVycyBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAncG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFt
ZXRlcnMgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
fQogCkBAIC0yMTkwLDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0
aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAg
IGF1dG8gYWN0aW9uU2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAg
ICAgaWYgKCFhY3Rpb25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1
LDEzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9u
ZSIpCiAgICAgICAgIGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwog
ICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAg
ICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmlu
ZygiaWQiX3MpOwogICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJUaGUgcGFyYW1ldGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1
ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVl
bmNlKFNlc3Npb24mIHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5n
ZXRPckNyZWF0ZUlucHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsK
ICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNo
IGlucHV0IHNvdXJjZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0
aW9uIHNlcXVlbmNlIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNl
LnR5cGUgPT0gIElucHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50
ZXJUeXBlICE9IHBvaW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
QWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBw
b2ludGVyIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2Vx
dWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlw
ZSJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBh
Y3Rpb25JdGVtcyA9IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAg
aWYgKCFhY3Rpb25JdGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNl
cXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
YWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3Mp
OwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3
LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFj
dGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYWN0aW9uSXRlbXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBh
Y3Rpb25JdGVtcy0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0p
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlv
biBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIkFuIGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIy
NzgsNyArMjI3OCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVm
UHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlv
bnNBcnJheSA9IHBhcmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFj
dGlvbnNBcnJheSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlv
bnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VH
dGsuY3BwIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5k
ZXggYTA5ZDA5NDFiYTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkx
MWFmMTkxYjkzNjcwMTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZl
ci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsv
V2ViRHJpdmVyU2VydmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtQ2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwot
ICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2Fw
YWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxp
dGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpA
QCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENh
cGFiaWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3Qm
IG1hdGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAog
ewotICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93
ZWJraXQyZ3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7
CisgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dl
YmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3Mp
OwogICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAi
LS1hdXRvbWF0aW9uIl9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJz
ID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2Vy
dmljZVdpbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNw
cAppbmRleCA5MzY3MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcx
Y2NhZGEyNWU3MzcxZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
RHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdlYkRy
aXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7CisgICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBhYmls
aXRpZXMuc2V0V2luZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3Bw
IGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2
YTY3NmFiMmNhMTJhMDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdl
M2UyZDc0MDVhNWU2ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJp
dmVyU2VydmljZVdQRS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNl
OjpwbGF0Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3Jt
Q2FwYWJpbGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNh
cGFiaWxpdGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0
aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5z
ZXRXaW5kb3dSZWN0ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEw
NSw3ICsxMDUsNyBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmls
aXR5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRj
aGVkQ2FwYWJpbGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAg
ICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwog
ICAgIGNhcGFiaWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1h
dXRvbWF0aW9uIl9zIH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFi
aWxpdGllcy5nZXRPYmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5j
cHAKaW5kZXggMWYwYjdlNGU5OWVjZDMwZDg1ZWI2NTYyODhiNTYzZDQyMzkwY2Q3OC4uMzA5ZGFj
MDc5ZGQyODdiODQxYTgyMDE3M2I1NzRjNzU4ZTUwOWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApA
QCAtOTMxLDcgKzkzMSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVIVFRQ
UmVkaXJlY3Rpb24oKQogI2lmIFVTRShTT1VQMikKICAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVy
cm9yOjp0cmFuc3BvcnRFcnJvcihtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTT1VQX1NUQVRVU19U
T09fTUFOWV9SRURJUkVDVFMsICJUb28gbWFueSByZWRpcmVjdHMiX3MpKTsKICNlbHNlCi0gICAg
ICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X1NFU1NJT05fRVJST1IpIH0sIFNPVVBfU0VTU0lPTl9FUlJPUl9UT09fTUFOWV9SRURJUkVDVFMs
IG1fY3VycmVudFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoIlRvbyBtYW55IHJlZGly
ZWN0cyIpKSk7CisgICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRp
bjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIFNPVVBfU0VTU0lPTl9F
UlJPUl9UT09fTUFOWV9SRURJUkVDVFMsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIFN0cmluZzo6
ZnJvbVVURjgoIlRvbyBtYW55IHJlZGlyZWN0cyIpKSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTEwMzcsNyArMTAzNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6
cmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCoKICAg
ICAgICAgaWYgKHRhc2stPm1fc291cE1lc3NhZ2UpCiAgICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3I6OmdlbmVyaWNHRXJyb3IodGFzay0+bV9jdXJyZW50UmVxdWVzdC51cmwo
KSwgZXJyb3IuZ2V0KCkpKTsKICAgICAgICAgZWxzZSBpZiAodGFzay0+bV9maWxlKQotICAgICAg
ICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3Ry
aW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgICAgIHRh
c2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19z
dHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3Qu
dXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfSBlbHNlIGlm
IChieXRlc1JlYWQgPiAwKQpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tTb3VwOjpkaWRSZXF1ZXN0TmV4dFBhcnQoR1JlZlB0cjxHSW5wdXRTdHJlYW0+JiYgaW5wdXRT
dHJlYW0KICAgICBBU1NFUlQoIW1faW5wdXRTdHJlYW0pOwogICAgIG1faW5wdXRTdHJlYW0gPSBX
VEZNb3ZlKGlucHV0U3RyZWFtKTsKICAgICBhdXRvKiBoZWFkZXJzID0gc291cF9tdWx0aXBhcnRf
aW5wdXRfc3RyZWFtX2dldF9oZWFkZXJzKG1fbXVsdGlwYXJ0SW5wdXRTdHJlYW0uZ2V0KCkpOwot
ICAgIFN0cmluZyBjb250ZW50VHlwZSB7IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVh
ZGVycywgIkNvbnRlbnQtVHlwZSIpIH07CisgICAgYXV0byBjb250ZW50VHlwZSA9IFN0cmluZzo6
ZnJvbUxhdGluMShzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50
LVR5cGUiKSk7CiAgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9maXJzdFJlcXVl
c3QudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLAogICAg
ICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgoaGVhZGVycyksIGV4
dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAg
bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKGhlYWRlcnMpOwpAQCAtMTI0
OSw3ICsxMjQ5LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRIZWFkZXJzKCkK
ICAgICAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICAgICAgY29uc3QgY2hhciogaGVh
ZGVyVmFsdWU7CiAgICAgICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQo
JmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgICAgIHJl
cXVlc3RIZWFkZXJzLnNldChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkp
OworICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShoZWFk
ZXJOYW1lKSwgU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlclZhbHVlKSk7CiAgICAgICAgIGFkZGl0
aW9uYWxNZXRyaWNzLnJlcXVlc3RIZWFkZXJzID0gV1RGTW92ZShyZXF1ZXN0SGVhZGVycyk7CiAK
ICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucHJpb3JpdHkgPSB0b05ldHdvcmtMb2FkUHJpb3Jp
dHkoc291cF9tZXNzYWdlX2dldF9wcmlvcml0eShtX3NvdXBNZXNzYWdlLmdldCgpKSk7CkBAIC0x
NjkxLDcgKzE2OTEsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEZpbGVJbmZv
KEdGaWxlSW5mbyogaW5mbykKICAgICAgICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZSgidGV4dC9o
dG1sIl9zKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoLTEp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZSB7IGdfZmlsZV9pbmZv
X2dldF9jb250ZW50X3R5cGUoaW5mbykgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnX2ZpbGVfaW5mb19nZXRfY29udGVudF90eXBlKGluZm8pKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBl
KGNvbnRlbnRUeXBlKSk7CiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShl
eHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAg
ICAgICBpZiAobV9yZXNwb25zZS5taW1lVHlwZSgpLmlzRW1wdHkoKSkKQEAgLTE3MTksNyArMTcx
OSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6cmVhZEZpbGVDYWxsYmFjayhHRmlsZSog
ZmlsZSwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIE5lCiAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+
IGVycm9yOwogICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1Jl
ZihHX0lOUFVUX1NUUkVBTShnX2ZpbGVfcmVhZF9maW5pc2goZmlsZSwgcmVzdWx0LCAmZXJyb3Iu
b3V0UHRyKCkpKSk7CiAgICAgaWYgKGVycm9yKQotICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291
cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgZXJy
b3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVy
cm9yLT5tZXNzYWdlKSkpOworICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3Ry
aW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3It
PmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9y
LT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAgdGFzay0+ZGlkUmVhZEZpbGUoV1RGTW92
ZShpbnB1dFN0cmVhbSkpOwogfQpAQCAtMTc0Myw3ICsxNzQzLDcgQEAgdm9pZCBOZXR3b3JrRGF0
YVRhc2tTb3VwOjplbnVtZXJhdGVGaWxlQ2hpbGRyZW5DYWxsYmFjayhHRmlsZSogZmlsZSwgR0Fz
eW5jUmVzdWwKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0cjxH
RmlsZUVudW1lcmF0b3I+IGVudW1lcmF0b3IgPSBhZG9wdEdSZWYoZ19maWxlX2VudW1lcmF0ZV9j
aGlsZHJlbl9maW5pc2goZmlsZSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBpZiAo
ZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAg
ICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFy
a190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJl
cXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgZWxz
ZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZSh3ZWJraXREaXJlY3RvcnlJbnB1dFN0cmVhbU5l
dyhXVEZNb3ZlKGVudW1lcmF0b3IpLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmco
KS51dGY4KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IDk3ZjA5ODU0Y2Y1ZTNlMjhmZTAyZWJj
ZjkyMjFiMzVkYjJlMDlhYjYuLjZlZWMzNzJmY2Y1NTYyMWQ0NTM1ODIyNDA1ZDQ2YzA0ZTNhZjAy
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2Nr
ZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dl
YlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgV2ViU29ja2V0VGFz
azo6ZGlkQ29ubmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24pCiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQoKSwgImVy
cm9yIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVFcnJvckNhbGxiYWNr
KSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQo
KSwgImNsb3NlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRDbG9zZUNhbGxiYWNr
KSwgdGhpcyk7CiAKLSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChTdHJpbmcgeyBzb3VwX3dlYnNv
Y2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpIH0sIGFjY2Vw
dGVkRXh0ZW5zaW9ucygpKTsKKyAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChTdHJpbmc6OmZyb21M
YXRpbjEoc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9u
LmdldCgpKSksIGFjY2VwdGVkRXh0ZW5zaW9ucygpKTsKIAogICAgIG1fY2hhbm5lbC5kaWRSZWNl
aXZlSGFuZHNoYWtlUmVzcG9uc2UobV9oYW5kc2hha2VNZXNzYWdlLmdldCgpKTsKICAgICBnX3Np
Z25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2RhdGEobV9oYW5kc2hha2VNZXNzYWdlLmdldCgp
LCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5n
VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmlu
ZGV4IDhiZTVlNjY4NjU5MGE3NjEzNzRkNTlhZDM4N2Q4NmJmYmFmYmIyNjguLmE3MDY1NDA1N2Jj
ZjBjYzFjYWYxMTg5ZTQ5MDBjMGRlYTczNDA1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIHJl
dHVybiBTdHJpbmcgeyBnZXRlbnYoIldFQktJVF9ERUJVRyIpIH07CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShnZXRlbnYoIldFQktJVF9ERUJVRyIpKTsKICNlbHNlCiAgICAgcmV0dXJu
IFN0cmluZygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Vu
aXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvU2hh
cmVkTWVtb3J5VW5peC5jcHAKaW5kZXggZmU5Yjc4MDI2MDkzZTY4MmMxNjkxMzVhMGYwMDA3M2Y4
NGNkODYzNi4uOTM0NWE0N2QwOGRjOWY4NjhlZDNjMmM2NmI2ZjNkOThmYTQ5YmM2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHd0Zi9TYWZlU3RyZXJyb3IuaD4KICNpbmNsdWRlIDx3
dGYvVW5pU3RkRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShMSU5VWF9NRU1GRF9IKQpAQCAtMTUzLDcgKzE1
NCw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlU2hhcmVkTWVtb3J5KCkKICNlbHNlCiAgICAgQ1N0cmlu
ZyB0ZW1wTmFtZTsKICAgICBmb3IgKGludCB0cmllcyA9IDA7IGZpbGVEZXNjcmlwdG9yID09IC0x
ICYmIHRyaWVzIDwgMTA7ICsrdHJpZXMpIHsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBTdHJpbmco
Ii9XSzJTaGFyZWRNZW1vcnkuIikgKyBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkgKyAxLjApKSk7CisgICAgICAgIGF1dG8gbmFtZSA9IG1ha2VTdHJpbmcoIi9XSzJTaGFy
ZWRNZW1vcnkuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9tTnVtYmVyKCkgKiAo
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpOwogICAgICAgICB0
ZW1wTmFtZSA9IG5hbWUudXRmOCgpOwogCiAgICAgICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggZmYyMjFjYTQ5
YTNjNjI4ZDBkYmY2YjA5MmRiMjdiMDQ4YWE1YjMxYy4uYTE1ZDc1NjBkNDY1ODNjNWMwM2FhNjBh
NjAwM2FjYzhkNjQ1OWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2ds
aWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2ds
aWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIHdlYmtpdF91
cmlfcmVxdWVzdF9zZXRfdXJpKFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIq
IHVyaSkKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0
KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbCh1cmkpOwogCi0gICAgVVJMIHVybCB7IFN0cmluZyB7
IHVyaSB9IH07CisgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMSh1cmkpIH07CiAgICAg
aWYgKHVybCA9PSByZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3QudXJsKCkpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVt
b3J5U2FtcGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9y
eVNhbXBsZXJMaW51eC5jcHAKaW5kZXggN2YwMGVmZmRlZDg3YWQ4NTYwMjg2N2FkMDY4Y2RmZGZi
ZmE5NGM1OC4uZDBiNDkwMjYwYTA0NWFmOTRhZjEyZjQwOTRlNzQ4OGNmZTYxN2E0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXgu
Y3BwCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5leHRUb2tlbihGSUxF
KiBmaWxlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKIH0KIAogc3RhdGljIGlubGlu
ZSB2b2lkIGFwcGVuZEtleVZhbHVlUGFpcihXZWJNZW1vcnlTdGF0aXN0aWNzJiBzdGF0cywgY29u
c3QgU3RyaW5nJiBrZXksIHNpemVfdCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCmluZGV4IDc1
MzJmZjViZWRiYmQ0ODM0ZWU3YzExMWNmZWRiOWE3YTg0YzYwODEuLjdlNDI3ZTAwNzc3ZDAyN2Q5
OTI5YzRlOWU0NDQ4MzdmM2M2OTE2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OldlYktpdFByb3RvY29sSGFuZGxlcihXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXh0KQogCiB2b2lkIFdlYktpdFByb3RvY29sSGFuZGxlcjo6aGFu
ZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAgIFVSTCBy
ZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3Vy
aShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZyb21MYXRp
bjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgaWYg
KHJlcXVlc3RVUkwuaG9zdCgpID09ICJncHUiKSB7CiAgICAgICAgIGhhbmRsZUdQVShyZXF1ZXN0
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAppbmRleCBjZjIwMTdhYWVk
YzVmN2E0ODYxNzliMWMzOGQwNDNjZWYyM2IyMzQ0Li5jNDE3YjdlYjk2NDFmNWMwYmI4YjYyYTE5
YTEwZDMyMTFlMWU4Yzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcApAQCAtMjIyLDcgKzIyMiw3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jCiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXNwb25z
ZSogcmVzcCA9IHByaXYtPnJlc3BvbnNlLmdldCgpOwogICAgIGlmICghcHJpdi0+Ynl0ZXNSZWFk
KSB7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZSB7IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGUg
PSBTdHJpbmc6OmZyb21MYXRpbjEod2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRDb250ZW50VHlw
ZShyZXNwKS5kYXRhKCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHByaXYt
PnRhc2stPnJlcXVlc3QoKS51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250
ZW50VHlwZSksIHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RyZWFtTGVuZ3RoKHJlc3ApLCBl
bXB0eVN0cmluZygpKTsKICAgICAgICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRy
YWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgICAg
ICBjb25zdCBDU3RyaW5nJiBzdGF0dXNNZXNzYWdlID0gd2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VH
ZXRTdGF0dXNNZXNzYWdlKHJlc3ApOwpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFVSSVNjaGVtZVJlcXVlc3RSZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVh
bSwgR0FzeW5jCiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dCgiT0siX3Mp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0Nv
ZGUod2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRTdGF0dXNDb2RlKHJlc3ApKTsKLSAgICAgICAg
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZyB7IHN0YXR1c01lc3NhZ2UuZGF0
YSgpIH0pOworICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpm
cm9tTGF0aW4xKHN0YXR1c01lc3NhZ2UuZGF0YSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHJlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0
TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHJlc3BvbnNlLnVybCgp
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC0zMTEsNiArMzExLDYgQEAgdm9pZCB3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcihXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1
ZXN0LCBHRXIKIAogICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVx
dWVzdC0+cHJpdjsKICAgICBwcml2LT5yZXNwb25zZSA9IG51bGxwdHI7Ci0gICAgUmVzb3VyY2VF
cnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIHRvV2ViQ29yZUVycm9yKGVycm9yLT5jb2RlKSwgcHJpdi0+dGFzay0+cmVxdWVzdCgp
LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CisgICAgUmVzb3VyY2VF
cnJvciByZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhl
cnJvci0+ZG9tYWluKSksIHRvV2ViQ29yZUVycm9yKGVycm9yLT5jb2RlKSwgcHJpdi0+dGFzay0+
cmVxdWVzdCgpLnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiAgICAg
cHJpdi0+dGFzay0+ZGlkQ29tcGxldGUocmVzb3VyY2VFcnJvcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwCmluZGV4IDIyZmMwYThkZmIw
OGViMmFkYjQwYjkwYzViMzE0MzZhZWUyOWNjMWYuLjIyNzVkNzQ4NWMxMjRjN2YzMTQ0ZTY1ODgz
NTU0NWY4ODg0ZmMwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Q29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0Q29sb3IuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgZ2Jvb2xlYW4gd2Via2l0X2NvbG9y
X3BhcnNlKFdlYktpdENvbG9yKiBjb2xvciwgY29uc3QgZ2NoYXIqIGNvbG9yU3RyaW5nKQogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yLCBGQUxTRSk7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoY29sb3JTdHJpbmcsIEZBTFNFKTsKIAotICAgIGF1dG8gd2ViQ29yZUNvbG9yID0gV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRleHQoU3RyaW5nIHsgY29sb3JT
dHJpbmcgfSk7CisgICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmc6OmZyb21MYXRpbjEoY29sb3JTdHJpbmcpKTsK
ICAgICBpZiAoIXdlYkNvcmVDb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBGQUxTRTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9v
bEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdM
aWIuY3BwCmluZGV4IDkzMzIzMmUyZjY4NGVkM2MyYjM1ZWU4MjAwYzBjNjc5ODNkZWRiZjcuLjRl
ZTNhNWIwMDNiZDBmYzNjNTU1NmM1NTdhN2E3Y2Y4ZDNmZmFmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKQEAgLTc5LDcg
Kzc5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIGlmICghcGFyYW1ldGVycy5p
c1NlcnZpY2VXb3JrZXJQcm9jZXNzKSB7CiAgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVudEZp
bGVEZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfcmVu
ZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsK
LSAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3Rl
bTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRl
ZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgcGFyYW1ldGVycy5p
bXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50
YXRpb25fbGlicmFyeV9uYW1lKCkpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtODksNyArODksNyBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgICAgICB3cGVfbG9hZGVyX2luaXQoImxpYldQ
RUJhY2tlbmQtZmRvLTEuMC5zby4xIik7CiAgICAgICAgIGlmIChBY2NlbGVyYXRlZEJhY2tpbmdT
dG9yZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKCkpIHsKICAgICAgICAgICAgIHBhcmFtZXRl
cnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVz
Y3JpcHRvcih3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3Jp
cHRvcjo6QWRvcHQpKTsKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJy
YXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmcgeyB3
cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGlicmFyeV9uYW1lKCkgfSk7Cisg
ICAgICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lz
dGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nOjpmcm9tTGF0aW4xKHdwZV9sb2Fk
ZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSkpOwogICAgICAgICB9
CiAjZWxpZiBVU0UoRUdMKQogICAgICAgICBwYXJhbWV0ZXJzLndheWxhbmRDb21wb3NpdG9yRGlz
cGxheU5hbWUgPSBXYXlsYW5kQ29tcG9zaXRvcjo6c2luZ2xldG9uKCkuZGlzcGxheU5hbWUoKTsK
QEAgLTExNiw4ICsxMTYsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgR0FwcGxp
Y2F0aW9uKiBhcHAgPSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKGFwcCkK
LSAgICAgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbklEID0gU3RyaW5nIHsgZ19hcHBsaWNhdGlv
bl9nZXRfYXBwbGljYXRpb25faWQoYXBwKSB9OwotICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25O
YW1lID0gU3RyaW5nIHsgZ19nZXRfYXBwbGljYXRpb25fbmFtZSgpIH07CisgICAgICAgIHBhcmFt
ZXRlcnMuYXBwbGljYXRpb25JRCA9IFN0cmluZzo6ZnJvbUxhdGluMShnX2FwcGxpY2F0aW9uX2dl
dF9hcHBsaWNhdGlvbl9pZChhcHApKTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkpOwogCiAgICAgcGFy
YW1ldGVycy5pbnNwZWN0b3JTZXJ2ZXJBZGRyZXNzID0gSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3I6Omluc3BlY3RvclNlcnZlckFkZHJlc3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwCmluZGV4IDMzODRmYTI1OGMyMGY0NDZmMjEyZGFlMmMyNGRjOWQ4MTIyYmFkMDEu
Ljc2ZTZjZWZlOTBkYzAwYmUzODRiMzU3ZmQ2MTkxZTZkZWFmYTQyMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50
V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3Bl
L1dlYkVkaXRvckNsaWVudFdQRS5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHN0
YXRpYyB2b2lkIGhhbmRsZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZl
bnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKIHsKLSAgICBT
dHJpbmcgY29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRv
IGNvbW1hbmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50
KSk7CiAKICAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBmcmFtZS5l
ZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CkBAIC0xOTAsNyArMTkwLDcg
QEAgc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihG
cmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmKQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJldEtleUV2ZW50KGV2
ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJw
cmV0S2V5RXZlbnQoZXZlbnQpKTsKICAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dpbi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dpbi9XZWJQYWdlV2luLmNwcAppbmRleCA3NjQ0M2E5NDI1NGFlNGZlOGU1OGY4MDdiYWE1MjE1
NmMzNjdkMTFkLi5jNzdmZjc4Y2QzY2Q5NjI3ZDFhZTdiOTMwYzgxNDU3MDk0NjQ1MjAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4u
Y3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9h
cmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlw
ZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50
TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRv
IGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlF
dmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21t
YW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAg
ICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAg
ICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1v
ZGUgdG8gZGVjaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3Np
YmxlVGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJ
bXBsLmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0Li4z
NWMyODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYsNyBA
QCBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZzZXQs
IGxvbmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFjY2Vz
c2libGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdURjo6
U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0
LW1vZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFzZSgp
OwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN0YXRpc3RpY3MuY3BwCmluZGV4IGYxMzE2ZGU0NmMyMTM1YTZkMjZmYWI5ZDE0NGRlYjNmODFm
MDg5MzguLjAxYTYxMmZkYTMyODlkOTY3Y2E5NjcyY2M0MjNlMWQzNWRhNTU5NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAgLTE0OSw3ICsx
NDksNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0UHJvdGVjdGVkT2Jq
ZWN0VHlwZUNvdW50cyhfQ09NX091dHB0cl9vcHRfCiAgICAgSXRlcmF0b3IgZW5kID0ganNPYmpl
Y3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3VudE1h
cDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVjdFR5cGVOYW1lcy0+YmVnaW4o
KTsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgdHlwZUNvdW50TWFwLnNldChT
dHJpbmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUpOworICAgICAgICB0eXBlQ291
bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5rZXkpLCBjdXJyZW50LT52YWx1
ZSk7CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0cyhBZG9wdENPTSwgQ09NUHJv
cGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50TWFwKSk7CiAgICAgcmVzdWx0
cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBIUkVT
VUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cyhfQ09NX091
dHB0cl9vcHRfIElQcm9wZXJ0eQogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0VHlwZU5hbWVz
LT5lbmQoKTsKICAgICBIYXNoTWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7CiAgICAgZm9y
IChJdGVyYXRvciBjdXJyZW50ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7IGN1cnJlbnQg
IT0gZW5kOyArK2N1cnJlbnQpCi0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nIHsgY3Vy
cmVudC0+a2V5IH0sIGN1cnJlbnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50TWFwLnNldChT
dHJpbmc6OmZyb21MYXRpbjEoY3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUpOwogCiAgICAg
Q09NUHRyPElQcm9wZXJ0eUJhZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPGlu
dD46OmNyZWF0ZUluc3RhbmNlKHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMuY29weVJlZlRv
KHR5cGVOYW1lc0FuZENvdW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAxYzdhZmQwNTMx
YTkyZjMyN2MzMzZiNjVmM2ExMmUwOTMyYTY4ZmQ2Li5iMjM5Mzc2MjQwZGM5ZDIzMDFmZTVjNTk0
YjcxNzQ0ZGU2ZTIyNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ1NCw3ICs0NTQsNyBA
QCBib29sIFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KEVsZW1l
bnQqIGUsIEtleWJvYXJkRXZlbnQqIGtlKQogICAgICAgICBpZiAoZG9tRWxlbWVudCkgewogICAg
ICAgICAgICAgSURPTUhUTUxJbnB1dEVsZW1lbnQqIGRvbUlucHV0RWxlbWVudDsKICAgICAgICAg
ICAgIGlmIChTVUNDRUVERUQoZG9tRWxlbWVudC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lET01IVE1M
SW5wdXRFbGVtZW50LCAodm9pZCoqKSZkb21JbnB1dEVsZW1lbnQpKSkgewotICAgICAgICAgICAg
ICAgIFN0cmluZyBjb21tYW5kIHsgbV93ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkgfTsK
KyAgICAgICAgICAgICAgICBhdXRvIGNvbW1hbmQgPSBTdHJpbmc6OmZyb21MYXRpbjEobV93ZWJW
aWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkpOwogICAgICAgICAgICAgICAgIC8vIFdlIGFsbG93
IGVtcHR5IGNvbW1hbmRzIGhlcmUgYmVjYXVzZSB0aGUgYXBwIGNvZGUgYWN0dWFsbHkgZGVwZW5k
cyBvbiB0aGlzIGJlaW5nIGNhbGxlZCBmb3IgYWxsIGtleSBwcmVzc2VzLgogICAgICAgICAgICAg
ICAgIC8vIFdlIG1heSB3YW50IHRvIHJldmlzaXQgdGhpcyBsYXRlciBiZWNhdXNlIGl0IGRvZXNu
J3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gc2VuZCBhbiBlbXB0eSBjb21tYW5kLgogICAgICAgICAg
ICAgICAgIGZvcm1EZWxlZ2F0ZS0+ZG9QbGF0Zm9ybUNvbW1hbmQoZG9tSW5wdXRFbGVtZW50LCBC
U3RyaW5nKGNvbW1hbmQpLCBraXQoZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKSwgJnJlc3VsdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmE5NTM3MjcyZjcyNmZlZDMzYzdiZjIy
ZWEzZWIzODhjMzk0Y2QxMS4uZTg0ZmZiZTZkNTVkN2E0Nzc2NTA5MGIxY2MwOWMxZmQ4Nzc3OWI0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzUwLDcgKzc1MCw3IEBAIFJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgQ2hpY2tlbkNhdCB0
byBpbmNsdWRlIENGTmV0d29yay9DRlVSTEVycm9yLmggdG8gZ2V0IHRoZXNlIHZhbHVlcwogICAg
IC8vIEFsdGVybmF0aXZlbHksIHdlIGNvdWxkIGNyZWF0ZSBvdXIgb3duIGVycm9yIGRvbWFpbi9j
b2Rlcy4KLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4p
LCAtOTk5LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCIpKTsKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoV2ViVVJMRXJyb3JEb21haW4pLCAtOTk5
LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCJfcykpOwogfQogCiBSZXNvdXJjZUVy
cm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdApAQCAtNzgwLDcgKzc4MCw3IEBAIFJlc291cmNlRXJyb3IgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uCiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90
RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwg
cmVzcG9uc2UudXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iKSk7CisgICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKFdlYlVSTEVycm9yRG9tYWluKSwg
LTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIl9zKSk7
CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdmNTIxZGEwZmRhMjRhNTc0MDY4MGEyNDM3
OWI4MmNiMjQwMzQzMzguLjc3MjRmYjAwMmExYWEyODAzNmIyZjBmYjJjZDA0ZDYyMWIzNTFlN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCBi
b29sIFdlYlZpZXc6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2
ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAm
JiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5k
KFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBjb21tYW5k
ID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtl
eUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91
Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVz
dCBpbnNlcnQgdGV4dCBpZiBleGVjdXRlZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQ
cm92aWRlci5jcHAKaW5kZXggMDAwNWQwMTBkMzViYzZjNThjMTg2OWQxMWFjNzE4MmYyYzhjZTcy
YS4uZTdmOTUwNjU1YjQyNDg2MTQ0MDU2Y2U4MzQ4ZjU5NTA5ZjU2ZGU3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
Y3BwCkBAIC00Nyw1ICs0Nyw1IEBAIFN0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKICAgICAgICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBF
UlJPUl9BTFJFQURZX0VYSVNUUykKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAg
ICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tTGF0aW4xKGRhdGFiYXNlRGlyZWN0b3J5KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5Yjkz
M2IxMDU3NzM1Y2NjLi4zNDhkODVhYjk2ZGJiYWZmMWI0ZDZjNzM5MGExMzNlZjIwOGJhMDk0IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjUgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkg
YW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Ny
b3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9IZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRh
YmFzZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
X0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAg
ICh0ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5s
aW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0
TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1b
V2ViS2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1l
c3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJT
b2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVz
dENlcnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQ
cml2YXRlS2V5KToKKwogMjAyMi0wNC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01lcmdlLVF1ZXVlXSBDcmVhdGUgc2VwZXJhdGUgcXVldWUgZm9y
IHVuc2FmZSB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
cm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4
NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBh
dXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9y
aWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgp
LT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZT
dHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RG
TW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYo
KSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAg
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcg
b3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9Owog
ICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmlt
cGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3Jp
Z2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsK
ICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcy
LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQog
CiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0g
ICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBj
cm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkt
PmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkp
OwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0
aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25h
bFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07Cisg
ICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4
NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4
ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0Yo
RmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7
Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJu
b3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBz
dWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShT
dHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6
OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVD
VF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1
NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2
MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dl
cmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVn
ZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIp
OwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50
ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQog
CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0Ui
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2ln
bmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
QSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAw
N2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUg
KzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWls
ZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIi
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmlu
ZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWls
ZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5n
dGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENo
YXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVm
ZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0x
MzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAg
ICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVj
dGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3Ry
aW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6
OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIz
NDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1
aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIi
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1
bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
bWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxk
ZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBT
dHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20g
OC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4K
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAg
ICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChi
dWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygm
YnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0
IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJp
dCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdh
c24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAn
ZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWls
ZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVs
bHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
IHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7
CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkp
OwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
c3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3Qg
YWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBh
Y2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwog
ICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBz
dHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3Mp
LCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVy
LgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJp
bmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
Il9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAg
IC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmlu
ZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywx
MyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAg
ICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VR
KGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
CiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRo
ZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgy
MDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkp
OwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdp
bmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91
bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWls
ZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmlu
ZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwg
YnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5n
MSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAg
IGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVp
bGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3Ry
aW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVz
aXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJp
bmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgp
OwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBi
dWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVp
bGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEp
OwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBl
bmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRl
cjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWls
ZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09
IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBi
dWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxk
ZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9
IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykp
OwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4K
ICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIs
NyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5n
IGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBh
dG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2Mjkw
ZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4
ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1w
bC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAK
QEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9y
aW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBT
dHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9U
UlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIp
KTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVF
KHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFT
U0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwg
IiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0
YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4
ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdi
YTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAg
U3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsK
ICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVy
YWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3
QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7
ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmll
d0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgy
ZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5
YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0
c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmlu
Z1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5n
V2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJz
KCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0
aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0
c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdF
bXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1Zp
ZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2
aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2
aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENo
YXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhT
dHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJz
KCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygi
aGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29k
ZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNU
KFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVy
YXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAg
IEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQo
IndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJr
aXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2Rl
UG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9p
bnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJp
bmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygi
SGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmlu
ZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhT
dHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmll
dyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4
MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJp
dHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgy
NGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0
OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYg
KzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBF
WFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2Nv
bCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUu
Y29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3
dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9U
UlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3Vy
bC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21l
bnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
ZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVS
TCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBA
IHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihX
VEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRl
VVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXgu
aHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2Vy
bmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgw
ODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0
dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206
ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZp
bGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
ImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6
Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykK
QEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9z
KTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkx
PXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZl
Y3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZf
VVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2
YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBV
UkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3Mp
OwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7
eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwog
ICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFs
MSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJM
IHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2
IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAg
ICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFs
MiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsi
a2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2
YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEx
LCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAg
VVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12
YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIi
fSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2
YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCks
IHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAg
IFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMm
a2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwy
In0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIi
X3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5
MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7
IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEy
Mik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0i
X3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5
UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJM
IHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJM
IHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3Mp
OwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcy
OCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3Qi
X3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVy
bDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVS
TCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwg
Ij0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMw
KSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIp
LCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3Mg
fSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2
KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVj
dG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5h
MjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9W
ZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQog
ewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7
ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwg
U3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsg
InYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJf
cywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFw
cGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBh
aXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBm
MjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3
ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3Ry
aW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3Bw
CkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwp
CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBz
dHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxp
Y2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAg
ICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zy
b21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0
cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0
cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVD
VF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgp
KTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwog
ICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9
CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0
cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAg
ICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0
cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFj
dGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMu
c3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJh
Y3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1Qo
V1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7
CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUo
cmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RS
VUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7
CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5
Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1w
dHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5n
KCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3Vi
bGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1
bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgw
LjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAv
LyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIiku
dG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3Vi
bGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1
dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNp
c3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2ls
bCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgi
X3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJz
ZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9G
QUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVl
cyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOwor
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4
Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdB
dChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwg
MikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygi
VGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVY
UEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIp
KTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQo
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsK
QEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQp
CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0
cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4
reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgo
IuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
Lmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
KCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIp
KTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3Ry
aW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBM
aXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgp
LT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFz
aCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3Ry
aW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVY
UEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlz
OEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5k
ZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2My
MGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcg
KzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykK
ICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJM
RmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJ
SVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVND
SUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5v
bkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVND
SUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9u
QVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0
ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0
YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVj
MmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JU
ZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlz
ZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3Qg
U3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2Vk
IHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgi
VGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEo
IlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0
IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2Ri
MDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMy
NzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBI
ZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hU
VFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQs
IFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9z
LAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25B
U0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21t
ZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAg
ICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmlu
Zzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJp
bmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAg
CiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVy
RmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIi
X3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRl
bEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAg
IH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3
Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2My
OTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXll
ZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRH
ZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBF
WFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2Rl
U3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2Vi
S2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVk
RW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJp
bmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25F
eGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5
YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAK
QEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1w
bGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2
U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJp
bmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJk
b21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
ImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVz
dC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEi
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsi
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4w
LjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVD
VF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9z
KSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYx
NlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhh
bXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2Fs
aG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhh
bVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhv
c3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxh
dGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVh
Y2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUy
NDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hE
YXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVv
ZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAg
ICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAg
ICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29y
ZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBT
dHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVj
b3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9U
UlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
aGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhh
ZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBA
IC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQog
ewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZp
bGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2Zp
bGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBA
IFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZF
eGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZl
cik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRT
aGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RS
VUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0
YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+
c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRl
V2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5k
ZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1
MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAg
LTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlF
bmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+Y
jSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmlu
ZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYl
RjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5
OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWly
cyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7Cisg
ICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3
aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0
aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZs
YXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnki
X3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsi
aHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9z
LCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAg
LTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlF
bmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25p
emVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9
KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQ
QUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFM
OjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVt
bGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAg
Y2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNv
ODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czov
L2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3Ry
aW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9z
LCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAi
JUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVD
MyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAppbmRleCAyZGQ3ZTRhZTdhMDFjMjllZjE0
YmU4OWZlZGFiMjg1ZDk3NmY5ODAzLi4xYTViNWQ2YWQ4ZGQxNzU4OTY4OTk0NGJkYmM5NDYzNjgz
N2U4MTY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNl
ckFnZW50UXVpcmtzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VXNlckFnZW50UXVpcmtzLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJyb3dz
ZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRh
cmRVc2VyQWdlbnRGb3JVUkwoVVJMKCBTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0
cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJs
KSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIkNocm9tZSIpKTsKICAg
ICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiU2FmYXJpIikpOwpAQCAtNDUsNyArNDUs
NyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNDaHJvbWVCcm93c2VyUXVp
cmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxI
YXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFT
dHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAg
ICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpm
cm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5jb250YWlucygi
Q2hyb21lIikpOwogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5jb250YWlucygiU2FmYXJpIikp
OwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNG
aXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIAogc3RhdGljIHZvaWQgYXNzZXJ0
VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0g
ICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7
IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwo
VVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmlu
Zy5jb250YWlucygiTWFjaW50b3NoIikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRh
aW5zKCJNYWMgT1MgWCIpKTsKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNl
ckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25zdCBjaGFyKiB1cmwpCiAvLyB0aGF0
IHRoZSBzdGFuZGFyZCB1c2VyIGFnZW50IHNob3VsZCBiZSB1c2VkLikKIHN0YXRpYyB2b2lkIGFz
c2VydFVzZXJBZ2VudEZvclVSTEhhc0VtcHR5UXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAg
IFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1
cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVS
TChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5p
c051bGwoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRj
NGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0
ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcg
Kzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0
aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20g
Ym90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3Zl
IHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOwor
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmci
X3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0
ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVh
bCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwg
YmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5v
cmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERl
bGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2Fz
ZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERh
dGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwi
KTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4
U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNr
ZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3
ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFj
a2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAv
LyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lu
cyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20g
ZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERh
dGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
V2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3
ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8g
YW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ug
c2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24g
c2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJh
c2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAv
LyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRv
ZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBk
YXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGEx
YjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZh
ZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5
UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0ht
SEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVp
UkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAi
NjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0
MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAi
aGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVu
Y29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdr
cWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJl
dGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NL
ejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAg
ICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9J
YTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5j
Mk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0Iv
djF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBh
dXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7
CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0
aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNi
MTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNp
Z25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2ln
bmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJl
cXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsK
IAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhy
ZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91
bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
dW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9r
ZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5n
dGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3Ry
aW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2ln
blVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWdu
aW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
cmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkp
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBz
aWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNl
X3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0
X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRT
dHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpA
QCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERl
Y29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2Vu
VmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tl
blNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25h
dHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3Rh
cnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1
Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5
MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIz
ICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGlu
Z0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFll
cyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07
Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNP
T1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBE
b1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwg
c291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5h
dGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1Nh
bWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBl
Y3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7
CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJj
ZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChz
b3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYg
KHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1i
ZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVz
dGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAg
ICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOwor
ICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAg
ICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9z
LCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAg
ICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhl
YWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFs
aXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZl
cjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciog
c291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhb
W1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2lu
IikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsK
LSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGlu
YXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBk
ZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAi
KTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNP
T1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsK
KyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGlu
YXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVp
cmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0
U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03
NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChj
b25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
bnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIs
IG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BB
bmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBk
ZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1p
c3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQog
ewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBo
YXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGly
ZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9l
c24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
ICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJf
cywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
InVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wg
aXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5k
ZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4
NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAg
LTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkK
ICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZl
cihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1h
aW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFp
bkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJl
Y2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlh
bGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJl
c3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9
IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVj
dG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxv
d2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNo
Il9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5k
ZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRl
MmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFt
ZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29u
c3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9
ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+
PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+Igog
IjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsy
OTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwv
aHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCmluZGV4IDA1NDA1NTM3YTc1NzQ4ZDBm
ZWZmOGRmNThkNDY1MDZiMDZkMjE1YWUuLmQwMjBkNmU4ZWM4N2E3MzU3MDRhZjVmNWJmMmJhODI0
ZmRmYjhkNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0U1NMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFNTTC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGFzc2VydE9i
amVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoY2VydGlmaWNhdGUpKTsKICAg
ICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlOwogICAgICAgICBtX3Rsc0Vycm9ycyA9
IHRsc0Vycm9yczsKLSAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZyB7IGZhaWxpbmdV
UkkgfSk7CisgICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZmFp
bGluZ1VSSSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXgg
YjdjMWNjMWM1YzUzYjk3MDZlZGQ0YmM0Zjc3MmNhMjk2M2QxMzQyZi4uZDg1NTA4YTVkMzJlNmE3
NzA1YzMwZTdlZWU5ODZhODgxZTE0MDRkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCB3aW5kb3dQcm9wZXJ0aWVzTm90aWZ5Q2FsbGJh
Y2soR09iamVjdCosIEdQYXJhbVNwZWMqIHBhcmFtU3BlYywgVUlDbGllbnRUZXN0KiB0ZXN0KQog
ICAgIHsKLSAgICAgICAgdGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5n
IHsgZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBhcmFtU3BlYykgfSk7CisgICAgICAgIHRlc3QtPm1f
d2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0cmluZzo6ZnJvbUxhdGluMShnX3BhcmFtX3Nw
ZWNfZ2V0X25hbWUocGFyYW1TcGVjKSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBXZWJLaXRXZWJW
aWV3KiB2aWV3Q3JlYXRlQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbiwgVUlDbGllbnRUZXN0KiB0ZXN0KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25z
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5z
aW9ucy5jcHAKaW5kZXggYzU2OTAyYTIyOTcwNzIyZDNjYzExNmJiYTMxMGRkYjZiNDNkZTg5Yi4u
N2RlZDY2Y2U2NmRjNWE0YWEzMzIzNzEwOTBhMGE0OTBlOThlMzc1OCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvblBh
Z2VJRChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICAvLyBSZWdpc3RlciBh
IGN1c3RvbSBVUkkgc2NoZW1lIHRvIHRlc3QgaGlzdG9yeSBuYXZpZ2F0aW9uLgogICAgIHdlYmtp
dF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKHRlc3QtPm1fd2ViQ29udGV4dC5nZXQo
KSwgImZvbyIsCiAgICAgICAgIFtdKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdw
b2ludGVyKSB7Ci0gICAgICAgICAgICBVUkwgdXJsID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlf
c2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICAgICAgICAgIFVSTCB1cmwg
PSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3Vy
aShyZXF1ZXN0KSkpOwogICAgICAgICAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3Ry
ZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgICAg
ICBjaGFyKiBodG1sID0gZ19zdHJkdXBfcHJpbnRmKCI8aHRtbD48aGVhZD48dGl0bGU+JXM8L3Rp
dGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiIsIHVybC5ob3N0KCkgPT0gImhvc3Q1IiA/
ICJUaXRsZTUiIDogIlRpdGxlNiIpOwogICAgICAgICAgICAgZ19tZW1vcnlfaW5wdXRfc3RyZWFt
X2FkZF9kYXRhKEdfTUVNT1JZX0lOUFVUX1NUUkVBTShpbnB1dFN0cmVhbS5nZXQoKSksIGh0bWws
IHN0cmxlbihodG1sKSwgZ19mcmVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0
M2M5M2VhOTg0YzNhNmZiNWZiNDA5YTIwN2JjN2Y4NjU3M2NkN2QuLjMxMjA3OGY3Y2E0YWE5MDc5
ZGI0NjgzMDk0ODA1ZWFiZWY5MjM4ZmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAt
MTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5z
aWduZWQgY29udGVudExlbmd0aCkKIHsKLSAgICBTdHJpbmcgYmFzZVN0cmluZygiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIik7CisgICAgU3RyaW5nIGJhc2VTdHJpbmcoImFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Nzg5MCJfcyk7CiAgICAgdW5zaWduZWQgYmFz
ZUxlbmd0aCA9IGJhc2VTdHJpbmcubGVuZ3RoKCk7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0
N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVS
TC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNh
bkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAg
ICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9h
cmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNv
bHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwg
MSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJW
aWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3
Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBi
ODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpA
QCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQog
ICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQg
KilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRl
eHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5t
bQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNk
MTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdl
YlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilV
UkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFs
ZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6
KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmlu
ZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNz
YWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRm
NWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2
b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNv
Y2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAg
ICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVx
dWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAg
ICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsg
IlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9
CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3Ro
OjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3
ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkK
ICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1
UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVR
bXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysv
OURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQz
eTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRL
NXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29k
ZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2Vy
dGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVy
Ojp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0pl
UmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0
dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRF
T2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6
RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFK
ZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFBy
aXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVy
biBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDI4MDM0
MTE0MGYwMmY4NGY3OTQ5NGVlYzRiN2UzNmIxMWMwOTlkODMuLjhkZmE0ZTIzZjRlNDkwMjUyYjM5
YTRiNjY3ZmFiOTMyMjVjZGFjZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xp
Yi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCkBAIC0xMDEsMTIgKzEwMSwx
MiBAQCBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZvclBhdGgoY29u
c3QgY2hhciogcGF0aCkgY29uc3QKIHsKICAgICBnX2Fzc2VydF9mYWxzZShtX2Jhc2VXZWJTb2Nr
ZXRVUkwuaXNOdWxsKCkpOwogICAgIGdfYXNzZXJ0X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycp
OwotICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmcgeyBwYXRoICsgMSB9
KS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KKyAgICByZXR1
cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGggKyAxKSku
c3RyaW5nKCkudXRmOCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcgc2xhc2guCiB9CiAKIENTdHJp
bmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0VVJJRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25z
dAogewotICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmcgeyBwYXRoIH0pLnN0cmluZygp
LnV0ZjgoKTsKKyAgICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBh
dGgpKS5zdHJpbmcoKS51dGY4KCk7CiB9CiAKIHVuc2lnbmVkIFdlYktpdFRlc3RTZXJ2ZXI6OnBv
cnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3Jp
cHRDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0
Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMmE4ODUyNzE0YWVmZjFhMjE5ZDE3ZGE1MmY4ZTU3ZTdl
YjY1ZTkxOC4uNDJmYzBiNGYxM2MxNGFmNDY0OWM2Njg1MTIzZjM2MTAxMGUyZmVlMyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsu
Y3BwCkBAIC0xODUsMTEgKzE4NSwxMSBAQCBzdGF0aWMgUmVmPEpTT046Ok9iamVjdD4gdG9KU09O
T2JqZWN0KEdWYXJpYW50KiB2YXJpYW50KQogICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29w
KCZpdGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7CiAgICAgICAgIGNvbnN0IEdWYXJpYW50
VHlwZSogdHlwZSA9IGdfdmFyaWFudF9nZXRfdHlwZSh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBl
ICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQot
ICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0KFN0cmluZyB7IGtleSB9LCB0b0pTT05P
YmplY3QodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmc6
OmZyb21MYXRpbjEoa2V5KSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYg
KHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfU1RSSU5H
KSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhTdHJpbmcgeyBrZXkgfSwgU3Ry
aW5nIHsgZ192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpIH0pOworICAgICAgICAg
ICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBTdHJpbmc6
OmZyb21MYXRpbjEoZ192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpKSk7CiAgICAg
ICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5U
X1RZUEVfRE9VQkxFKSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmcg
eyBrZXkgfSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25P
YmplY3QtPnNldERvdWJsZShTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgZ192YXJpYW50X2dldF9k
b3VibGUodmFsdWUpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzb25PYmplY3Q7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xs
ZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRm
Yzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAx
MDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVu
dW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRl
cnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxs
U3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmlu
Zy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5n
IGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0lt
cGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAi
csOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEo
InLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0
cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJc
dTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485680"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457171</attachid>
            <date>2022-04-09 10:40:55 -0700</date>
            <delta_ts>2022-04-09 12:04:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409104054.patch</filename>
            <type>text/plain</type>
            <size>214644</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggNzUzMmZmNWJlZGJiZDQ4MzRlZTdj
MTExY2ZlZGI5YTdhODRjNjA4MS4uN2U0MjdlMDA3NzdkMDI3ZDk5MjljNGU5ZTQ0NDgzN2YzYzY5
MTY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFdlYktpdFByb3Rv
Y29sSGFuZGxlcjo6V2ViS2l0UHJvdG9jb2xIYW5kbGVyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQpCiAKIHZvaWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpoYW5kbGVSZXF1ZXN0KFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgVVJMIHJlcXVlc3RVUkwgPSBVUkwoU3Ry
aW5nIHsgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpKTsKICAgICBpZiAocmVxdWVzdFVSTC5ob3N0KCkg
PT0gImdwdSIpIHsKICAgICAgICAgaGFuZGxlR1BVKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGNmMjAxN2FhZWRjNWY3YTQ4NjE3OWIxYzM4ZDA0
M2NlZjIzYjIzNDQuLmM0MTdiN2ViOTY0MWY1YzBiYjhiNjJhMTlhMTBkMzIxMWUxZThjOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCBHQXN5bmMKIAogICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwID0gcHJpdi0+cmVz
cG9uc2UuZ2V0KCk7CiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgU3RyaW5n
IGNvbnRlbnRUeXBlIHsgd2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRDb250ZW50VHlwZShyZXNw
KS5kYXRhKCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGlu
MSh3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEoKSk7CiAg
ICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocHJpdi0+dGFzay0+cmVxdWVzdCgpLnVy
bCgpLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwgd2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgocmVzcCksIGVtcHR5U3RyaW5nKCkpOwogICAg
ICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlh
VHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGNvbnN0IENTdHJpbmcmIHN0
YXR1c01lc3NhZ2UgPSB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UocmVz
cCk7CkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVz
dFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmMKICAgICAgICAg
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSh3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0YXR1c0NvZGUocmVzcCkpOwotICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRU
UFN0YXR1c1RleHQoU3RyaW5nIHsgc3RhdHVzTWVzc2FnZS5kYXRhKCkgfSk7CisgICAgICAgICAg
ICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc3RhdHVzTWVz
c2FnZS5kYXRhKCkpKTsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzcG9uc2UubWltZVR5cGUo
KS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJl
Z2lzdHJ5OjptaW1lVHlwZUZvclBhdGgocmVzcG9uc2UudXJsKCkucGF0aCgpLnRvU3RyaW5nKCkp
KTsKQEAgLTMxMSw2ICszMTEsNiBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdFcgogCiAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogICAgIHBy
aXYtPnJlc3BvbnNlID0gbnVsbHB0cjsKLSAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
U3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgdG9XZWJDb3JlRXJy
b3IoZXJyb3ItPmNvZGUpLCBwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIFN0cmluZzo6ZnJv
bVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
U3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgdG9X
ZWJDb3JlRXJyb3IoZXJyb3ItPmNvZGUpLCBwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIFN0
cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKICAgICBwcml2LT50YXNrLT5kaWRDb21w
bGV0ZShyZXNvdXJjZUVycm9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBiOTBjNWIzMTQz
NmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRmYzA2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKQEAg
LTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2ViS2l0Q29sb3Iq
IGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xvclN0cmluZywg
RkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsKKyAgICBhdXRv
IHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldpdGhvdXRDb250
ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICghd2ViQ29yZUNv
bG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5kZXggOTMzMjMy
ZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2JkMGZjM2M1NTU2
YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nl
c3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6
OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9j
bGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBwYXJhbWV0ZXJz
LmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xp
YnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFy
eU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nOjpmcm9t
TGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUo
KSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1mZG8tMS4wLnNv
LjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6Y2hlY2tS
ZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURl
c2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJl
cl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAg
ICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3Rl
bTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRl
ZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAgIHBhcmFtZXRl
cnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxl
bWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVTRShFR0wpCiAg
ICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9IFdheWxhbmRD
b21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDggKzExNiw4IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3Qg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFwcCA9IGdfYXBw
bGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBwYXJhbWV0ZXJz
LmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBsaWNhdGlvbl9p
ZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmcgeyBnX2dl
dF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbklE
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lkKGFw
cCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4x
KGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmluc3BlY3RvclNl
cnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVjdG9yU2VydmVy
QWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKaW5kZXggMzM4
NGZhMjU4YzIwZjQ0NmYyMTJkYWUyYzI0ZGM5ZDgxMjJiYWQwMS4uNzZlNmNlZmU5MGRjMDBiZTM4
NGIzNTdmZDYxOTFlNmRlYWZhNDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BF
LmNwcApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlF
dmVudChjb25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5
UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7
IGludGVycHJldEtleUV2ZW50KGV2ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKIAogICAgIGlmICghY29t
bWFuZE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29t
bWFuZE5hbWUpLmV4ZWN1dGUoKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5k
bGVLZXlQcmVzcyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0
Zm9ybUtleQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9h
cmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCiB7Ci0gICAgU3Ry
aW5nIGNvbW1hbmROYW1lIHsgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBj
b21tYW5kTmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkp
OwogICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3Bw
CmluZGV4IDc2NDQzYTk0MjU0YWU0ZmU4ZTU4ZjgwN2JhYTUyMTU2YzM2N2QxMWQuLmM3N2ZmNzhj
ZDNjZDk2MjdkMWFlN2I5MzBjODE0NTcwOTQ2NDUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTI2OCw3ICsyNjgs
NyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygp
LmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZl
bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5l
ZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkgfSk7Cisg
ICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlw
ZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRv
ZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCmluZGV4IGEyMTYz
ZmQwOTJiNDU0M2NhYTVhNTIwOTFkYjBhMTMzMzExZWM2ODQuLjM1YzI4OTdhYzg4NzNiMTc0MzFm
OWVkNTY3YjIxYzk5YmZiMjNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNj
ZXNzaWJsZVRleHRJbXBsLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIEhSRVNVTFQgQWNjZXNzaWJs
ZVRleHQ6OnNldEF0dHJpYnV0ZXMobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQsIEJT
VFIqIGF0CiAvLyBJQWNjZXNzaWJsZTIKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmdldF9hdHRy
aWJ1dGVzKEJTVFIqIGF0dHJpYnV0ZXMpCiB7Ci0gICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1t
b2RlbDphMSIpOworICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiX3MpOwogICAg
ICphdHRyaWJ1dGVzID0gQlN0cmluZyh0ZXh0KS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNfT0s7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGlj
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKaW5k
ZXggZjEzMTZkZTQ2YzIxMzVhNmQyNmZhYjlkMTQ0ZGViM2Y4MWYwODkzOC4uMDFhNjEyZmRhMzI4
OWQ5NjdjYTk2NzJjYzQyM2UxZDM1ZGE1NTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEhSRVNVTFQgV2Vi
Q29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKF9DT01f
T3V0cHRyX29wdF8KICAgICBJdGVyYXRvciBlbmQgPSBqc09iamVjdFR5cGVOYW1lcy0+ZW5kKCk7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gdHlwZUNvdW50TWFwOwogICAgIGZvciAoSXRlcmF0
b3IgY3VycmVudCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsg
KytjdXJyZW50KQotICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZyB7IGN1cnJlbnQtPmtl
eSB9LCBjdXJyZW50LT52YWx1ZSk7CisgICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nOjpm
cm9tTGF0aW4xKGN1cnJlbnQtPmtleSksIGN1cnJlbnQtPnZhbHVlKTsKIAogICAgIENPTVB0cjxJ
UHJvcGVydHlCYWcyPiByZXN1bHRzKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxpbnQ+OjpjcmVh
dGVJbnN0YW5jZSh0eXBlQ291bnRNYXApKTsKICAgICByZXN1bHRzLmNvcHlSZWZUbyh0eXBlTmFt
ZXNBbmRDb3VudHMpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3Rp
Y3M6OmphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzKF9DT01fT3V0cHRyX29wdF8gSVByb3BlcnR5
CiAgICAgSXRlcmF0b3IgZW5kID0ganNPYmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hN
YXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3VudE1hcDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQg
PSBqc09iamVjdFR5cGVOYW1lcy0+YmVnaW4oKTsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkK
LSAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVu
dC0+dmFsdWUpOworICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShj
dXJyZW50LT5rZXkpLCBjdXJyZW50LT52YWx1ZSk7CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFn
Mj4gcmVzdWx0cyhBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2Uo
dHlwZUNvdW50TWFwKSk7CiAgICAgcmVzdWx0cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDFjN2FmZDA1MzFhOTJmMzI3YzMzNmI2NWYzYTEy
ZTA5MzJhNjhmZDYuLmIyMzkzNzYyNDBkYzlkMjMwMWZlNWM1OTRiNzE3NDRkZTZlMjI1ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDU0LDcgKzQ1NCw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xp
ZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZSwgS2V5Ym9hcmRFdmVu
dCoga2UpCiAgICAgICAgIGlmIChkb21FbGVtZW50KSB7CiAgICAgICAgICAgICBJRE9NSFRNTElu
cHV0RWxlbWVudCogZG9tSW5wdXRFbGVtZW50OwogICAgICAgICAgICAgaWYgKFNVQ0NFRURFRChk
b21FbGVtZW50LT5RdWVyeUludGVyZmFjZShJSURfSURPTUhUTUxJbnB1dEVsZW1lbnQsICh2b2lk
KiopJmRvbUlucHV0RWxlbWVudCkpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGNvbW1hbmQg
eyBtX3dlYlZpZXctPmludGVycHJldEtleUV2ZW50KGtlKSB9OworICAgICAgICAgICAgICAgIGF1
dG8gY29tbWFuZCA9IFN0cmluZzo6ZnJvbUxhdGluMShtX3dlYlZpZXctPmludGVycHJldEtleUV2
ZW50KGtlKSk7CiAgICAgICAgICAgICAgICAgLy8gV2UgYWxsb3cgZW1wdHkgY29tbWFuZHMgaGVy
ZSBiZWNhdXNlIHRoZSBhcHAgY29kZSBhY3R1YWxseSBkZXBlbmRzIG9uIHRoaXMgYmVpbmcgY2Fs
bGVkIGZvciBhbGwga2V5IHByZXNzZXMuCiAgICAgICAgICAgICAgICAgLy8gV2UgbWF5IHdhbnQg
dG8gcmV2aXNpdCB0aGlzIGxhdGVyIGJlY2F1c2UgaXQgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5z
ZSB0byBzZW5kIGFuIGVtcHR5IGNvbW1hbmQuCiAgICAgICAgICAgICAgICAgZm9ybURlbGVnYXRl
LT5kb1BsYXRmb3JtQ29tbWFuZChkb21JbnB1dEVsZW1lbnQsIEJTdHJpbmcoY29tbWFuZCksIGtp
dChlLT5kb2N1bWVudCgpLmZyYW1lKCkpLCAmcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCBmYTk1MzcyNzJmNzI2ZmVkMzNjN2JmMjJlYTNlYjM4OGMzOTRjZDExLi43
Y2UyMDcxMjBjZDZmNzZlMGRiNzBmZGVhNDBlMTgzM2NiNTZlZGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCkBAIC03NTAsNyArNzUwLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXMKIHsKICAgICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3Jr
L0NGVVJMRXJyb3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCiAgICAgLy8gQWx0ZXJuYXRpdmVseSwg
d2UgY291bGQgY3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBS
ZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJs
KCksIFN0cmluZygiQ2FuY2VsbGVkIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmlu
ZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmluZygiQ2FuY2Vs
bGVkIl9zKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2Nr
ZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CkBAIC03ODAsNyAr
NzgwLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01J
TUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb24KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKSBjb25zdAogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhX
ZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCByZXNwb25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRv
ZXMgbm90IGV4aXN0LiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJM
RXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2UudXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5v
dCBleGlzdC4iX3MpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEy
NGE1NzQwNjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNk
MDRkNjIxYjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcs
NyArMjE0Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVu
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVk
aXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAg
ICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRp
bjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBl
KCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9l
c24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29t
bWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxk
IGJlIHRyZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdl
L1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFn
ZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDEx
YWM3MTgyZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNl
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJv
dmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6OkdldExh
c3RFcnJvcigpICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3
YTVkODY0Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEz
M2VmMjA4YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6
OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29u
dGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tl
eWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5n
ZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0
ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
OgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFs
ZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNv
bm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpI
VFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBl
cmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRk
MjRjMzFmYzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAw
NTk1NjBhMTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9z
c1RocmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAg
ICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIz
NCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAg
RVhQRUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RS
VUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsK
KyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAt
NTMsNyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQog
CiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQog
ewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1Rf
RVEob3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+
aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkp
OwpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0
aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25h
bFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIg
fTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAg
IGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQ
RUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3Jp
Z2luYWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcg
eyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9z
c1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5y
ZWZDb3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0
ZW0uY3BwCmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRi
MjQ2NTIzOTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJp
dmF0ZToKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAg
IGJvb2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxl
RGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVN
b2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1h
cHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpN
YXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vz
cyk7CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5
N2IwMWY0YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdh
MTAxMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApA
QCAtNDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2Vy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93
ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAw
YSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2Up
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNF
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwQSJfcywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVj
ZGQ0MzJkNDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMw
NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxk
ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwCkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENv
bnN0cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQo
ImFiY2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBi
dWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgp
LCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1
aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5s
ZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAx
MjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwog
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNp
dHkoMTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFw
cGVuZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdT
dHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJp
bmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRl
cik7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywg
IiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVp
bGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVp
bGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJh
YmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3Mp
LCAiQiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNl
eWUsIDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAi
QiIsICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIs
ICdDJywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmlu
Z0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0
aW5nIGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2Un
LCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAg
ICAgRVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7
CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZUFCIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20g
OC1iaXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRo
ZSB1cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2Qi
LCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODki
X3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNp
dHkoMzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAg
RVhQRUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFC
IiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIg
KzE5MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0
cmluZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVp
bGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxk
ZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGlu
IGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhl
IFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBw
ZW5kKCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBz
dHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0
cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAg
LTIyNywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsK
ICAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsK
ICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8g
Q2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVu
ZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJf
cyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxk
ZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAg
YnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWls
ZGVyLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJp
bmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEo
Y2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hh
cmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyAr
MjYyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KQogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
OCgpKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAg
ICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgo
KSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0
cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRl
ci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAg
YnVpbGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEs
MjEgKzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1Rf
VFJVRShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmco
KSA9PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMi
KSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAg
IGJ1aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMy
KTsKICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBh
Y2l0eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0
cmluZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxk
ZXIxKTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVp
bGRlcjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIx
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0
cmluZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciBy
ZWlmeVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApA
QCAtMzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwog
ICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MjU2KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUw
YTIyNzFiODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0
NDFkZWJjMjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdJbXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxT
dGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3Qg
dEVTVCIpOworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RS
VUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7
CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICJ0ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAg
ICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICIiKSk7Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShTdHJpbmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBB
U1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwg
IiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09w
ZXJhdG9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwCmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0
NDJlNDM2OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQy
LDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJh
dG9ycykKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5n
KCJTdHJpbmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwog
ICAgIEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3Ry
aW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmlu
Z1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1Zp
ZXcgeyBzdHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0Nv
cHlDb3VudCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3Bw
CmluZGV4IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2Fj
YmVlM2Y2NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBT
dHJpbmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZp
ZXc7CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAg
IFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5n
V2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFj
dGVycyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENo
YXJhY3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdU
RiwgU3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwog
Ci0gICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAg
ICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxv
b3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAg
IEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdy
YXBoZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAg
IFN0cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwog
CiAgICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcg
KzE1Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgq
Y29kZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVk
SXRlcmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAg
U3RyaW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsK
ICAgICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50
cygpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsK
ICAgICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RG
LCBTdHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAog
VEVTVChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkp
OworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIp
KS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJv
bUxhdGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5n
VmlldyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxB
U0NJSSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3
MDU3MGFhZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdk
M2Q4MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwu
Y3BwCkBAIC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29u
c3RDaGFyKQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9F
UShrdXJsLnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ3d3cuZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7
CiAgICAgRVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1
cmwucG9ydCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1
cmwudXNlcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3
b3JkKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21w
b25lbnQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBF
WFBFQ1RfVFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwog
fQogCiBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04
MCw0MyArODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3Ry
aW5nKQogVEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0
byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5j
b206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12
YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxl
LmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9
dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAog
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVy
bCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8v
L2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklT
dHJpbmdTaGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53
ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2
YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEs
IHVybDIpLCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcg
QEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAg
ICBVUkwgdXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAg
IFVSTCB1cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
NCB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQp
OwogICAgIAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRl
c3RWZWN0b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQg
e3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwx
Il9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5n
UXVlcnlQYXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAg
ICBVUkwgdXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
Il9zKTsKICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5Mj12YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsg
ImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBF
Q1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3Ix
NTE2KTsKICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXky
IiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwg
eyAia2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1
cmwxNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12
YWwyIl9zKTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7
ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwg
eyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJf
cywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMTcsIHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9
dmFsMiJfcyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwg
eyJrZXkyIiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsg
eyAia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAi
dmFsMiJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjAp
LCB0ZXN0VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0s
IHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiks
IHRlc3RWZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0
IHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsK
ICAgICAKICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/
Il9zKTsKICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8v
P3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90
ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAg
ICAKICAgICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVz
dCJfcyk7CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/
PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMjkzMCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAi
Il9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwyOSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0g
Y3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7
ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJz
KHVybDMxLCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsg
eyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cyh1cmwyNSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4
MDQ5OTQzNTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5
IEBAIFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFw
RnJvbUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1h
cC5zZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3Ry
aW5nIHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsz
IiB9LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAg
IG1hcC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwog
CiAgICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMz
NGQ0NWZiZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5
MTI1YWQ1MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRp
b25Gcm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVY
UEVDVF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFs
VmlhQVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4
Qml0KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50
YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
RXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVND
SUkpOwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9z
dHI7CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxp
dGVyYWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdG
cm9tTGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRl
cmFsKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zy
b21MaXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBA
QCBURVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBu
dWxsU3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsK
LSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0
cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdX
aXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShz
dHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyAr
MjMxLDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBl
eHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAg
ICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsK
KyAgICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3Ry
aW5nLmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkK
QEAgLTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBF
Q1RfRVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5n
KCIxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ug
c2VlIGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IiAxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJh
aWxpbmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMK
ICAgICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFs
c2UgZm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsK
IAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMg
ImluZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJs
ZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9r
KSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90
IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
Im5hbiIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsK
ICAgICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFy
dGluZ0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJp
bmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwg
MikpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhC
aXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVY
UEVDVF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9z
LCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4
reWbvSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
IikuaXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0lu
Zml4U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAg
RVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkp
OwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVD
VF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewot
ICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmlu
ZzEoIlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVs
bCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAg
c3RyaW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3Ry
aW5nRXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJh
eSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFi
YyJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9U
UlVFKHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5
Li5hOTk3MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5j
cHAKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFy
c2luZ0ZhaWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRF
eHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25z
dCBjaGFyIG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhT
dHJpbmcgeyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJv
bUxhdGluMShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBD
b250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkp
OwogICAgIAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRl
bnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0
MWQ1YjFjOGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRk
NzMzNWQ4MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZp
bGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0
ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBp
cyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9u
aXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0
b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3Mp
OworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29t
ZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0
IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcy
N2ZkZWYyOTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2
ZjMxODBkZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhU
VFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6
IFwiYUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAg
IFN0cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1
b3RlZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWly
SW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwK
KyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCks
CisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwK
ICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBU
RVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAg
ICAgImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAg
ICAgU3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVs
SW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5
MDAwZGUxZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3
M2Q3NTdjYTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRD
b2RpbmcsIFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3Ry
aW5nKQogewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRF
bmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmlu
ZywgU3RyaW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgm
V2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29k
ZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRD
b2RpbmcsIEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEy
NzExMDg1ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRm
Y2JlOTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwg
VG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2
U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAg
RVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygp
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3Mp
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNv
LnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEi
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJs
LnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYu
dGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNk
Zi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9z
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25h
bERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJF
eGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLD
pcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVz
dC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1w
bGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFt
UGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2Fs
SG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiw4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFz
ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNw
cAppbmRleCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEz
NTMwZjE0Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4
IEBAIFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50
ZihzY29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwg
aSk7CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVk
IiwgaSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAg
ICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJl
Y29yZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNv
cmQudG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRh
YmFzZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5
MmZjMWNjMmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYz
YmUzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
CiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09m
TWlzc2luZ0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdp
dGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8g
YnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJu
b3RfZXhpc3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAg
LTUyLDcgKzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVX
aXRoQ29udGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRf
Tk9UX05VTEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJs
ZW4oRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0
cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
clRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRh
dGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZm
ZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVu
Y29kaW5nLmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDcz
Li40ZDI3ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVu
Y29kaW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2Rp
bmdUZXN0LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0
cDovL2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4
RCJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/
JUMzJTlGJUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZv
clN1cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmco
ImxhdGluMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAg
IGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwg
eyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8i
X3MsICJxdWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9z
dC8/cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
Lz9xdWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmlu
ZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6
Ly9ob3N0Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJf
cywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9x
dWVyeSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2Rp
bmdUZXN0LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnki
X3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0
cDovL2hvc3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNv
Z25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9z
LCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8i
X3N9KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTkt
MSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAg
IFN0cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEs
ICdcMCd9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRo
VW1sYXV0cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlT
dHJpbmcoKSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNo
ZWNrVVJMKG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284
ODU5MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6
Ly9ob3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDJkZDdl
NGFlN2EwMWMyOWVmMTRiZTg5ZmVkYWIyODVkOTc2Zjk4MDMuLjFhNWI1ZDZhZDhkZDE3NTg5Njg5
OTQ0YmRiYzk0NjM2ODM3ZTgxNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJM
SGFzQ2hyb21lQnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFT
dHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoIFN0cmluZyB7IHVybCB9KSk7Cisg
ICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6
ZnJvbUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygi
Q2hyb21lIikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7
CkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0No
cm9tZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVz
ZXJBZ2VudEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewot
ICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcg
eyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJM
KFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHVhU3Ry
aW5nLmNvbnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRh
aW5zKCJTYWZhcmkiKSk7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJB
Z2VudEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0
aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNo
YXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVS
TChVUkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVz
ZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVD
VF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWNpbnRvc2giKSk7CiAgICAgRVhQRUNUX1RSVUUo
dWFTdHJpbmcuY29udGFpbnMoIk1hYyBPUyBYIikpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMg
dm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIq
IHVybCkKIC8vIHRoYXQgdGhlIHN0YW5kYXJkIHVzZXIgYWdlbnQgc2hvdWxkIGJlIHVzZWQuKQog
c3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRW1wdHlRdWlyayhjb25zdCBjaGFy
KiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwo
VVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2Vy
QWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKHVhU3RyaW5nLmlzTnVsbCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpp
bmRleCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0
YjA2NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVz
dC5tbQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2lu
KQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5m
b3JtYXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJs
ZXMsIGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1
dCBub3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9u
IHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAq
d2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAi
V2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJh
c2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBz
Il9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFi
YXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAg
Ly8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9t
IGVpdGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNT
dHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVj
dG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+
IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBh
dGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
KCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVT
VChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNl
c1RhYmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBm
cm9tIHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJl
IGRlbGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxl
U3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0
NDMpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRh
YmFzZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24s
IHRoZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRo
ZSBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcg
QEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05v
dEV4aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRh
dGFiYXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGls
bCByZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJs
ZS4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVt
cG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFi
YXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0
aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFi
OWQ2ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJh
YzAzYjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5Q
dHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQz
YW5RcVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJv
RGRrS0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFI
aTQ4dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkpp
TG4wNVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2
YVY5eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAg
ICBTdHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtR
WTFKUm5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMs
NyArMTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAg
ICAiNDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5
YXNkamcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5
dDJqOWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJU
NWdBcUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtN
RzNSa3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9
Il9zKTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29k
ZWRQcml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUo
cGVtRW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0
ODBjOTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNh
ZTY4MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAg
c3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNp
Z25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9U
UlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVl
c3QyLnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3Ry
aW5nID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1Bh
cnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmco
ImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBT
dHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25f
dW5saW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0
ID0gcmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5k
ID0gcmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBz
dGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2ln
bmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJl
cXVlc3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3Jl
dF90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3Rh
cnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQo
JyInLCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2Fi
bGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9y
ID0gYmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRX
aXRoQnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0p
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmlu
Z1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNy
ZXRfdG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9z
aWduYXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkg
PSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291
cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNy
ZXRfdG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5n
LmZpbmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1
YmNlYTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0
ZTNlNWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KQEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNr
QWZ0ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6
IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9v
bCB7IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3Qg
Y2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVz
dGluYXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBp
c1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBF
eHBlY3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlM
aXRlcmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNT
YW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRl
UmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRl
cnM7CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJf
cyk7CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAg
c291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VD
T09QKTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNy
b3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBz
b3VyY2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVh
ZGVyczsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0
L2h0bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9u
SGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGlu
YXRpb25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlv
bkNPRVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJl
ZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGlu
YXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGlu
YXRpb25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3Zl
KGRlc3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZl
cihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4g
eyB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAg
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bv
b2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlv
bjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09Q
LCAic2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJl
cXVpcmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1l
LW9yaWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwg
InJlcXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVx
dWlyZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNv
bGF0ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9u
Q09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29s
YXRlZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZp
ZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNP
RQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywg
eyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJf
cywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29y
cCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9u
ZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVu
c2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAi
cmVxdWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7
IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwg
InNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25l
IiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2Ft
ZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
QW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2Fw
IGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRo
ZSBzb3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5X
aXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRp
cmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRo
ZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJl
LWNvcnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2Ft
ZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxw
dHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdp
biIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUt
bm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
NCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUt
b3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7
IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJf
cywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
eyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNh
bWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
IHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUt
bm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1
bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBzdGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIw
Li5mNDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29u
dGVudFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhU
VFBTZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29u
bmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4
dC9odG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0
bWwiX3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50
LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtl
clNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUo
KSwgWz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBS
ZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0
LmRhdGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1
Y2Nlc3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5
Li5lZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9
ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+
PC9odG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRv
IHBhcmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5o
dG1sJz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1l
ID0KICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+
IgpAQCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07Igog
IiAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0i
PC9odG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMDU0
MDU1MzdhNzU3NDhkMGZlZmY4ZGY1OGQ0NjUwNmIwNmQyMTVhZS4uZDAyMGQ2ZThlYzg3YTczNTcw
NGFmNWY1YmYyYmE4MjRmZGZiOGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjZXJ0
aWZpY2F0ZSkpOwogICAgICAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAgICAgICAg
IG1fdGxzRXJyb3JzID0gdGxzRXJyb3JzOwotICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3Ry
aW5nIHsgZmFpbGluZ1VSSSB9KTsKKyAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZzo6
ZnJvbUxhdGluMShmYWlsaW5nVVJJKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNs
aWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xp
ZW50LmNwcAppbmRleCBiN2MxY2MxYzVjNTNiOTcwNmVkZDRiYzRmNzcyY2EyOTYzZDEzNDJmLi5k
ODU1MDhhNWQzMmU2YTc3MDVjMzBlN2VlZTk4NmE4ODFlMTQwNGRlIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAt
MTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHdpbmRvd1Byb3BlcnRp
ZXNOb3RpZnlDYWxsYmFjayhHT2JqZWN0KiwgR1BhcmFtU3BlYyogcGFyYW1TcGVjLCBVSUNsaWVu
dFRlc3QqIHRlc3QpCiAgICAgewotICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFu
Z2VkLmFkZChTdHJpbmcgeyBnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSB9KTsKKyAg
ICAgICAgdGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nOjpmcm9tTGF0
aW4xKGdfcGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpKSk7CiAgICAgfQogCiAgICAgc3Rh
dGljIFdlYktpdFdlYlZpZXcqIHZpZXdDcmVhdGVDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uLCBVSUNsaWVudFRlc3QqIHRl
c3QpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYkV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJFeHRlbnNpb25zLmNwcAppbmRleCBjNTY5MDJhMjI5NzA3MjJkM2NjMTE2YmJhMzEw
ZGRiNmI0M2RlODliLi43ZGVkNjZjZTY2ZGM1YTRhYTMzMjM3MTA5MGEwYTQ5MGU5OGUzNzU4IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4
dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViRXh0ZW5zaW9ucy5jcHAKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViRXh0ZW5zaW9uUGFnZUlEKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAg
IC8vIFJlZ2lzdGVyIGEgY3VzdG9tIFVSSSBzY2hlbWUgdG8gdGVzdCBoaXN0b3J5IG5hdmlnYXRp
b24uCiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUodGVzdC0+bV93
ZWJDb250ZXh0LmdldCgpLCAiZm9vIiwKICAgICAgICAgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCogcmVxdWVzdCwgZ3BvaW50ZXIpIHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5n
IHsgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAgICAg
ICAgICAgVVJMIHVybCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVf
cmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgICAgICAgICBHUmVmUHRyPEdJbnB1dFN0
cmVhbT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygp
KTsKICAgICAgICAgICAgIGNoYXIqIGh0bWwgPSBnX3N0cmR1cF9wcmludGYoIjxodG1sPjxoZWFk
Pjx0aXRsZT4lczwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgdXJsLmhvc3Qo
KSA9PSAiaG9zdDUiID8gIlRpdGxlNSIgOiAiVGl0bGU2Iik7CiAgICAgICAgICAgICBnX21lbW9y
eV9pbnB1dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFt
LmdldCgpKSwgaHRtbCwgc3RybGVuKGh0bWwpLCBnX2ZyZWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4
dC5jcHAKaW5kZXggYTQzYzkzZWE5ODRjM2E2ZmI1ZmI0MDlhMjA3YmM3Zjg2NTczY2Q3ZC4uMzEy
MDc4ZjdjYTRhYTkwNzlkYjQ2ODMwOTQ4MDVlYWJlZjkyMzhmZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiBTdHJpbmcgZ2VuZXJhdGVI
VE1MQ29udGVudCh1bnNpZ25lZCBjb250ZW50TGVuZ3RoKQogewotICAgIFN0cmluZyBiYXNlU3Ry
aW5nKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiKTsKKyAgICBTdHJpbmcg
YmFzZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIl9zKTsKICAg
ICB1bnNpZ25lZCBiYXNlTGVuZ3RoID0gYmFzZVN0cmluZy5sZW5ndGgoKTsKIAogICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5
MzBiMDRjNDcyMzc4NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2Yzlk
NDY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ks
IENvbnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcu
Z2V0KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9h
cmQ6W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmdd
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0
cmluZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3
ZWJWaWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjll
ZjUxMTg3MjA2MzViMGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5
N2JmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2Fu
UGFzdGVVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tCkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3
Q2FuUGFzdGVVUkwpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1M
QW5jaG9yRWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAg
ICBOU1N0cmluZyAqdGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0
cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBj
OTc5YWEuLmM0M2FlY2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMOihOU1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBy
dW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5p
dGlhdGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmco
IlBBU1MiKSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9z
KSwgU3RyaW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0
YWY0YjY5ZjczMzBlZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEz
ZDJkNzU0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVy
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3
LDkgKzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVw
Z3JhZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdy
YWRlIiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRB
Y2NlcHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29j
a2V0Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAor
ICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZh
bHVlKHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVk
ZUNvbnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0p
OwogfQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0
Q2VydGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZ
ZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpq
cXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblli
Vzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1
IgotICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1pr
N21yZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRl
ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1v
dmUoKmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4
X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNL
cjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVl
UGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0
QWgydSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5
Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3
PT0iKTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAg
YXV0byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtl
eSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5j
cHAKaW5kZXggMjgwMzQxMTQwZjAyZjg0Zjc5NDk0ZWVjNGI3ZTM2YjExYzA5OWQ4My4uOGRmYTRl
MjNmNGU0OTAyNTJiMzlhNGI2NjdmYWI5MzIyNWNkYWNmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKQEAg
LTEwMSwxMiArMTAxLDEyIEBAIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0V2ViU29ja2V0
VVJJRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewogICAgIGdfYXNzZXJ0X2ZhbHNl
KG1fYmFzZVdlYlNvY2tldFVSTC5pc051bGwoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShwYXRoICYm
ICpwYXRoID09ICcvJyk7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmlu
ZyB7IHBhdGggKyAxIH0pLnN0cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNs
YXNoLgorICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmc6OmZyb21MYXRp
bjEocGF0aCArIDEpKS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFz
aC4KIH0KIAogQ1N0cmluZyBXZWJLaXRUZXN0U2VydmVyOjpnZXRVUklGb3JQYXRoKGNvbnN0IGNo
YXIqIHBhdGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZyB7IHBh
dGggfSkuc3RyaW5nKCkudXRmOCgpOworICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmc6
OmZyb21MYXRpbjEocGF0aCkpLnN0cmluZygpLnV0ZjgoKTsKIH0KIAogdW5zaWduZWQgV2ViS2l0
VGVzdFNlcnZlcjo6cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAppbmRleCAyYTg4NTI3MTRhZWZmMWEyMTlk
MTdkYTUyZjhlNTdlN2ViNjVlOTE4Li40MmZjMGI0ZjEzYzE0YWY0NjQ5YzY2ODUxMjNmMzYxMDEw
ZTJmZWUzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENv
bnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0
Q29udHJvbGxlckd0ay5jcHAKQEAgLTE4NSwxMSArMTg1LDExIEBAIHN0YXRpYyBSZWY8SlNPTjo6
T2JqZWN0PiB0b0pTT05PYmplY3QoR1ZhcmlhbnQqIHZhcmlhbnQpCiAgICAgd2hpbGUgKGdfdmFy
aWFudF9pdGVyX2xvb3AoJml0ZXIsICJ7JnN2fSIsICZrZXksICZ2YWx1ZSkpIHsKICAgICAgICAg
Y29uc3QgR1ZhcmlhbnRUeXBlKiB0eXBlID0gZ192YXJpYW50X2dldF90eXBlKHZhbHVlKTsKICAg
ICAgICAgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZ
UEVfVkFSRElDVCkpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nIHsg
a2V5IH0sIHRvSlNPTk9iamVjdCh2YWx1ZSkpOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0
T2JqZWN0KFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCB0b0pTT05PYmplY3QodmFsdWUpKTsKICAg
ICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklB
TlRfVFlQRV9TVFJJTkcpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmlu
ZyB7IGtleSB9LCBTdHJpbmcgeyBnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikg
fSk7CisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nOjpmcm9tTGF0aW4x
KGtleSksIFN0cmluZzo6ZnJvbUxhdGluMShnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVs
bHB0cikpKTsKICAgICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0
eXBlLCBHX1ZBUklBTlRfVFlQRV9ET1VCTEUpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0
RG91YmxlKFN0cmluZyB7IGtleSB9LCBnX3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOworICAg
ICAgICAgICAganNvbk9iamVjdC0+c2V0RG91YmxlKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBn
X3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOwogICAgIH0KICAgICByZXR1cm4ganNvbk9iamVj
dDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBi
L1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUz
ODY4OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNj
ZTQ4M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFp
bi5jcHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01Nywx
MyArNTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0
U3VtbWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAg
ICBTdHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1w
bCA9IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIg
fTsKKyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBh
bkVtcHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFu
OEJpdFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJ
bXBsID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1
dGYxNlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>
<flag name="commit-queue"
          id="485684"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457174</attachid>
            <date>2022-04-09 11:41:23 -0700</date>
            <delta_ts>2022-04-09 14:22:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409114122.patch</filename>
            <type>text/plain</type>
            <size>219758</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRDb2xvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdENvbG9yLmNwcAppbmRleCAyMmZjMGE4ZGZiMDhlYjJhZGI0MGI5MGM1YjMxNDM2YWVlMjlj
YzFmLi4yMjc1ZDc0ODVjMTI0YzdmMzE0NGU2NTg4MzU1NDVmODg4NGZjMDZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIGdib29sZWFuIHdlYmtpdF9jb2xvcl9wYXJzZShXZWJLaXRDb2xvciogY29sb3Is
IGNvbnN0IGdjaGFyKiBjb2xvclN0cmluZykKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
ciwgRkFMU0UpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yU3RyaW5nLCBGQUxTRSk7
CiAKLSAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xv
cldpdGhvdXRDb250ZXh0KFN0cmluZyB7IGNvbG9yU3RyaW5nIH0pOworICAgIGF1dG8gd2ViQ29y
ZUNvbG9yID0gV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRleHQoU3Ry
aW5nOjpmcm9tTGF0aW4xKGNvbG9yU3RyaW5nKSk7CiAgICAgaWYgKCF3ZWJDb3JlQ29sb3IuaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCA5MzMyMzJlMmY2ODRl
ZDNjMmIzNWVlODIwMGMwYzY3OTgzZGVkYmY3Li40ZWUzYTViMDAzYmQwZmMzYzU1NTZjNTU3YTdh
N2NmOGQzZmZhZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dl
YlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9X
ZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcykgewog
ICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQQzo6QXR0YWNo
bWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVudCgp
LCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAgICAgIHBhcmFtZXRlcnMuaW1wbGVt
ZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGlicmFyeV9u
YW1lKCkgfSk7CisgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9
IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEo
d3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAg
ICAgfQogI2VuZGlmCiAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MK
ICAgICAgICAgd3BlX2xvYWRlcl9pbml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28uMSIpOwog
ICAgICAgICBpZiAoQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVt
ZW50cygpKSB7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRv
ciA9IElQQzo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3Rf
Y3JlYXRlX2NsaWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7Ci0gICAgICAgICAg
ICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxl
bWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBs
ZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRp
b25fbGlicmFyeV9uYW1lKCkpKTsKICAgICAgICAgfQogI2VsaWYgVVNFKEVHTCkKICAgICAgICAg
cGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lID0gV2F5bGFuZENvbXBvc2l0
b3I6OnNpbmdsZXRvbigpLmRpc3BsYXlOYW1lKCk7CkBAIC0xMTYsOCArMTE2LDggQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBsaWNhdGlv
bl9nZXRfZGVmYXVsdCgpOwogICAgIGlmIChhcHApCi0gICAgICAgIHBhcmFtZXRlcnMuYXBwbGlj
YXRpb25JRCA9IFN0cmluZyB7IGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lkKGFwcCkg
fTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZyB7IGdfZ2V0X2FwcGxp
Y2F0aW9uX25hbWUoKSB9OworICAgICAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRpb25faWQoYXBwKSk7Cisg
ICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ19nZXRf
YXBwbGljYXRpb25fbmFtZSgpKTsKIAogICAgIHBhcmFtZXRlcnMuaW5zcGVjdG9yU2VydmVyQWRk
cmVzcyA9IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjppbnNwZWN0b3JTZXJ2ZXJBZGRyZXNz
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAppbmRleCAzMzg0ZmEyNThj
MjBmNDQ2ZjIxMmRhZTJjMjRkYzlkODEyMmJhZDAxLi43NmU2Y2VmZTkwZGMwMGJlMzg0YjM1N2Zk
NjE5MWU2ZGVhZmE0MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCkBA
IC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNv
bnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhG
cmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmIHBsYXRmb3JtRXZlbnQpCiB7Ci0gICAgU3RyaW5nIGNvbW1hbmROYW1lIHsgaW50ZXJw
cmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFtZSA9IFN0cmluZzo6ZnJv
bUxhdGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogCiAgICAgaWYgKCFjb21tYW5kTmFt
ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFt
ZSkuZXhlY3V0ZSgpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUtleVBy
ZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5
CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKIHsKLSAgICBTdHJpbmcgY29t
bWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRvIGNvbW1hbmRO
YW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7CiAgICAg
aWYgKGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKaW5kZXgg
NzY0NDNhOTQyNTRhZTRmZThlNThmODA3YmFhNTIxNTZjMzY3ZDExZC4uYzc3ZmY3OGNkM2NkOTYy
N2QxYWU3YjkzMGM4MTQ1NzA5NDY0NTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJv
b2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRF
dmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93
bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigp
LmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRv
IGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50
ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBo
YXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYTIxNjNmZDA5MmI0
NTQzY2FhNWE1MjA5MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2FjODg3M2IxNzQzMWY5ZWQ1Njdi
MjFjOTliZmIyM2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNz
aWJsZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxl
VGV4dEltcGwuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6
c2V0QXR0cmlidXRlcyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNUUiogYXQK
IC8vIElBY2Nlc3NpYmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Z2V0X2F0dHJpYnV0ZXMo
QlNUUiogYXR0cmlidXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1vZGVsOmEx
Iik7CisgICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSJfcyk7CiAgICAgKmF0dHJp
YnV0ZXMgPSBCU3RyaW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRleCBmMTMx
NmRlNDZjMjEzNWE2ZDI2ZmFiOWQxNDRkZWIzZjgxZjA4OTM4Li4wMWE2MTJmZGEzMjg5ZDk2N2Nh
OTY3MmNjNDIzZTFkMzVkYTU1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN0YXRpc3RpY3MuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgSFJFU1VMVCBXZWJDb3JlU3Rh
dGlzdGljczo6amF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoX0NPTV9PdXRwdHJf
b3B0XwogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5lbmQoKTsKICAgICBI
YXNoTWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7CiAgICAgZm9yIChJdGVyYXRvciBjdXJy
ZW50ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJl
bnQpCi0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nIHsgY3VycmVudC0+a2V5IH0sIGN1
cnJlbnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmc6OmZyb21MYXRp
bjEoY3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUpOwogCiAgICAgQ09NUHRyPElQcm9wZXJ0
eUJhZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPGludD46OmNyZWF0ZUluc3Rh
bmNlKHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMuY29weVJlZlRvKHR5cGVOYW1lc0FuZENv
dW50cyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgSFJFU1VMVCBXZWJDb3JlU3RhdGlzdGljczo6amF2
YVNjcmlwdE9iamVjdFR5cGVDb3VudHMoX0NPTV9PdXRwdHJfb3B0XyBJUHJvcGVydHkKICAgICBJ
dGVyYXRvciBlbmQgPSBqc09iamVjdFR5cGVOYW1lcy0+ZW5kKCk7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIGludD4gdHlwZUNvdW50TWFwOwogICAgIGZvciAoSXRlcmF0b3IgY3VycmVudCA9IGpzT2Jq
ZWN0VHlwZU5hbWVzLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50KQotICAgICAg
ICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZyB7IGN1cnJlbnQtPmtleSB9LCBjdXJyZW50LT52YWx1
ZSk7CisgICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGN1cnJlbnQt
PmtleSksIGN1cnJlbnQtPnZhbHVlKTsKIAogICAgIENPTVB0cjxJUHJvcGVydHlCYWcyPiByZXN1
bHRzKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxpbnQ+OjpjcmVhdGVJbnN0YW5jZSh0eXBlQ291
bnRNYXApKTsKICAgICByZXN1bHRzLmNvcHlSZWZUbyh0eXBlTmFtZXNBbmRDb3VudHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKaW5kZXggMWM3YWZkMDUzMWE5MmYzMjdjMzM2YjY1ZjNhMTJlMDkzMmE2
OGZkNi4uYjIzOTM3NjI0MGRjOWQyMzAxZmU1YzU5NGI3MTc0NGRlNmUyMjVmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCkBAIC00NTQsNyArNDU0LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRv
VGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiBlLCBLZXlib2FyZEV2ZW50KiBrZSkK
ICAgICAgICAgaWYgKGRvbUVsZW1lbnQpIHsKICAgICAgICAgICAgIElET01IVE1MSW5wdXRFbGVt
ZW50KiBkb21JbnB1dEVsZW1lbnQ7CiAgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGRvbUVsZW1l
bnQtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JRE9NSFRNTElucHV0RWxlbWVudCwgKHZvaWQqKikmZG9t
SW5wdXRFbGVtZW50KSkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgY29tbWFuZCB7IG1fd2Vi
Vmlldy0+aW50ZXJwcmV0S2V5RXZlbnQoa2UpIH07CisgICAgICAgICAgICAgICAgYXV0byBjb21t
YW5kID0gU3RyaW5nOjpmcm9tTGF0aW4xKG1fd2ViVmlldy0+aW50ZXJwcmV0S2V5RXZlbnQoa2Up
KTsKICAgICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBlbXB0eSBjb21tYW5kcyBoZXJlIGJlY2F1
c2UgdGhlIGFwcCBjb2RlIGFjdHVhbGx5IGRlcGVuZHMgb24gdGhpcyBiZWluZyBjYWxsZWQgZm9y
IGFsbCBrZXkgcHJlc3Nlcy4KICAgICAgICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byByZXZp
c2l0IHRoaXMgbGF0ZXIgYmVjYXVzZSBpdCBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlIHRvIHNl
bmQgYW4gZW1wdHkgY29tbWFuZC4KICAgICAgICAgICAgICAgICBmb3JtRGVsZWdhdGUtPmRvUGxh
dGZvcm1Db21tYW5kKGRvbUlucHV0RWxlbWVudCwgQlN0cmluZyhjb21tYW5kKSwga2l0KGUtPmRv
Y3VtZW50KCkuZnJhbWUoKSksICZyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IGZhOTUzNzI3MmY3MjZmZWQzM2M3YmYyMmVhM2ViMzg4YzM5NGNkMTEuLjdjZTIwNzEy
MGNkNmY3NmUwZGI3MGZkZWE0MGUxODMzY2I1NmVkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTc1MCw3ICs3NTAsNyBAQCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogewog
ICAgIC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxF
cnJvci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKICAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3Vs
ZCBjcmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29kZXMuCi0gICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3Ry
aW5nKCJDYW5jZWxsZWQiKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVS
TEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiX3Mp
KTsKIH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKQEAgLTc4MCw3ICs3ODAsNyBA
QCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbgogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVy
cm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3Qg
ZXhpc3QuIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRv
bWFpbiksIC0xMTAwLCByZXNwb25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0
LiJfcykpOwogfQogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3ZjUyMWRhMGZkYTI0YTU3NDA2
ODBhMjQzNzliODJjYjI0MDM0MzM4Li43NzI0ZmIwMDJhMWFhMjgwMzZiMmYwZmIyY2QwNGQ2MjFi
MzUxZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMjE0Nyw3ICsyMTQ3
LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3du
RXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCku
Y29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8g
Y29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRl
cnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhh
dmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0
aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUgdHJl
YXRlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwCmluZGV4IDAwMDVkMDEwZDM1YmM2YzU4YzE4NjlkMTFhYzcxODJm
MmM4Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4NjE0NDA1NmNlODM0OGY1OTUwOWY1NmRlNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmNwcApAQCAtNDcsNSArNDcsNSBAQCBTdHJpbmcgV2ViRGF0YWJhc2VQcm92aWRlcjo6
aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpCiAgICAgICAgICYmIDo6R2V0TGFzdEVycm9y
KCkgIT0gRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogCi0gICAgcmV0dXJuIFN0cmluZyhkYXRhYmFzZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbUxhdGluMShkYXRhYmFzZURpcmVjdG9yeSk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyMTMzMTVmYjdiYjdhNWQ4NjRj
YTgyOWI5MzNiMTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRiYmFmZjFiNGQ2YzczOTBhMTMzZWYyMDhi
YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxh
dGluMSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0
b3IuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0
ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dXNoRGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
RGF0YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgor
ICAgICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Q29udGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAg
ICAgICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5l
bFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlv
bjo6d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2
ZXI6OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVy
Ojp0ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRh
cmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQ3JlYXRlIHNlcGVyYXRlIHF1
ZXVlIGZvciB1bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKaW5kZXggZTE5NjY4Y2NkNzQ5YmJlOWE2ODhlMDY4NDM3MDg4ZmQzNjU4YWY4
Ni4uYzhlODMwMmJmMjk3YTMxMTRkZTIwM2MzNWIxMjM5ZjEyNTMwZDE3MiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTc1LDEwICsxMTc1LDEw
IEBAIHN0YXRpYyBib29sIGhhbmRsZUNvbnRyb2xDb21tYW5kKGNvbnN0IGNoYXIqIGNvbW1hbmQp
CiB7CiAgICAgaWYgKCFzdHJjbXAoIiNDSEVDSyBGT1IgQUJBTkRPTkVEIERPQ1VNRU5UUyIsIGNv
bW1hbmQpKSB7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IHN1cHBvcnQgY2hl
Y2tpbmcgZm9yIGFiYW5kb25kZWQgZG9jdW1lbnRzLgotICAgICAgICBTdHJpbmcgcmVzdWx0KCJc
biIpOworICAgICAgICBDU3RyaW5nIHJlc3VsdCgiXG4iKTsKICAgICAgICAgcHJpbnRmKCJDb250
ZW50LVR5cGU6IHRleHQvcGxhaW5cbiIpOwogICAgICAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3Ro
OiAldVxuIiwgcmVzdWx0Lmxlbmd0aCgpKTsKLSAgICAgICAgZndyaXRlKHJlc3VsdC51dGY4KCku
ZGF0YSgpLCAxLCByZXN1bHQubGVuZ3RoKCksIHN0ZG91dCk7CisgICAgICAgIGZ3cml0ZShyZXN1
bHQuZGF0YSgpLCAxLCByZXN1bHQubGVuZ3RoKCksIHN0ZG91dCk7CiAgICAgICAgIHByaW50Zigi
I0VPRlxuIik7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiI0VPRlxuIik7CiAgICAgICAgIGZm
bHVzaChzdGRvdXQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQw
YjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdU
Rl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmln
aW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+
aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGll
ciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3Ry
aW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1v
dmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkp
OwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBs
KCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdp
bmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3
IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAog
VEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jv
c3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5p
bXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsK
QEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlv
bmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxT
dHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAg
IFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBv
cmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmln
aW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4
Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4
MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZp
bGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwot
ICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90
X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3Vj
Y2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3Ry
aW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpT
aGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1Rf
VFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcy
NWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEg
QEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVp
bGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2Vy
LCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVn
ZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9z
LCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVy
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdj
OC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2
MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmco
KTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
cjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3Ro
KCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFy
YWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNk
ZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMw
LDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3Rl
ZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpm
cm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJf
cywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7
CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1
aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxs
c2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1h
a2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVy
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3Ry
aW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgt
Yml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVp
bGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1
bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3
aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQs
IGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNu
J3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2Un
LCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRl
ci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxz
ZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBz
dHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsK
IAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNp
dHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAg
ICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwg
c3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4K
ICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJf
cyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAv
LyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2lu
YWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJp
bmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShj
YXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
IHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3Rl
cnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUg
Y2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAw
KTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsK
ICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgi
QUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5n
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNp
dHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRl
ci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWls
ZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEp
OwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBj
YXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmlu
ZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBD
bGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6
ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsK
ICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVp
bGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygw
KTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRF
U1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxk
ZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsK
LSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5k
KCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIy
LmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBi
dWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVp
bGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVy
Mik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIy
ICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBi
dWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsK
ICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAg
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBh
dG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRv
bVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRk
MjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZi
M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBA
IC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3Ry
aW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJV
RShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7
CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NF
UlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIi
KSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShl
bXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgw
OTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2
MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0
cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAg
ICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFs
IGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0Jh
Y2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAi
U3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdC
YWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQz
NGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0
MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNX
aXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdW
aWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygi
aGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNX
aXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1w
dHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3
IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmll
d1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmll
d1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFy
YWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5n
Vmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29t
cGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygp
LCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhl
bG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQ
b2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChX
VEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0
b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBF
WFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3
ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0
Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBv
aW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50
c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJp
cExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5n
Vmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhl
bGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmco
IkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXco
U3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdW
aWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZB
TFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAi
KSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3
aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRl
M2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlk
ZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2
MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQ
RUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2wo
KSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNv
bSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cu
ZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJV
RSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Ii9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImlu
ZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwu
aGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50
IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZy
YWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwg
Y3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBz
dGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RG
X1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5h
bWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgw
L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRw
Oi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdt
ZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxl
Oi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8i
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmls
ZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRl
VVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJm
aWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8v
dXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBA
IC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7
CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAg
IEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0
b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VS
TCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFs
MSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJM
IHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
ICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3si
a2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAg
ICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJf
cywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1
cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7
eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAg
IFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIm
a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7Imtl
eTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFs
MyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwg
dXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVS
TCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFs
MyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0s
IHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0
ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBV
UkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtl
eTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9
LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9z
IH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIw
KTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7
ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9F
UShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIp
OwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9z
IH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1
cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1
cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsK
LSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgg
e3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9z
IH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwy
OSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwg
dXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9
In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCks
IHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9
OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwg
dGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0g
fTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiks
IHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rv
ci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIy
ZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVj
dG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAi
azEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0
cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2
MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3Ms
ICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBl
ZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWly
KSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIx
ZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2Qy
MzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmlu
Zy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApA
QCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQog
ICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3Ry
aW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNp
dCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1
Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJp
bmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1Rf
RVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7
CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAg
ICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQog
CiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAg
U3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3Rl
cnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0
YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0
ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdU
RiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwog
ICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJl
c3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVF
KHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwog
fQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMs
NTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5
U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygi
MCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBT
dHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50
b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5r
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8g
c3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRv
RG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwog
ICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQg
cmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0
ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwg
cmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAg
RVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgx
LjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ug
b25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFM
U0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMg
c3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNU
X0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxT
RShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5n
KCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFz
SW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7
CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkp
OwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBA
IC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQog
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJp
bmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRG
OCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3l
m70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLk
uK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5o
YXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygi
VGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7
CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmlu
ZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0
ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVD
VF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+
aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gp
CiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmlu
ZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBF
Q1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhC
aXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4
IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBj
ZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsx
NzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAg
ICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlb
Ml0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJ
IH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25B
U0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJ
KSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFT
Q0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25z
OjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVz
dFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJj
NmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJj
NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25p
dG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVz
dERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2Vk
RGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0
cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0
ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRo
aXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJU
aGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcg
RmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBm
b3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1
Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1
ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQ
SGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQ
YXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywK
ICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVND
SUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVu
dCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAg
ICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6
OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5n
Ojpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAog
ICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZp
ZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9z
LAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJ
blF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9
KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2Nj
Y2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkx
MDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRD
b2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0
RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0
cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktp
dCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVu
Y29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5n
LCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhp
c3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMx
Y2Q5NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBA
IC0xNTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxl
Llx1NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0
cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5n
KCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVz
dC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJi
bC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54
bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
dGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3Vi
ZG9tYWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4w
LjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3Qu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykp
OwogICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZT
dHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1w
bGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhv
c3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
w6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCLDhcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1Q
bGUuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRp
bjEoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNj
ZmI4N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0
OGJhNzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0
YWJhc2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHJlY29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yo
c2NvcGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAg
IHNucHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAg
ICAgIHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQu
dG9waWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmlu
Zzo6ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29y
ZChyZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJV
RShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRk
NTE1Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAt
NDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsK
LSAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxl
KFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxl
Il9zKSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhp
c3RpbmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29u
dGVudHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIp
OwogICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hh
cmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFn
bWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVF
KFN0cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEo
KSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNp
emUoKSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdp
dGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4
IGRjNGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIy
ODc0M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5j
b2RpbmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0j
w5/wn5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYw
JTlGJTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTgl
OEQjJUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMp
OwogCi0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAg
IFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6
Ly9ob3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0
aCUyMHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGgl
MjBzcGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0
aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiLyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9z
fSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0
dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywg
InF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0x
NTEsNyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5j
b2RpbmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXpl
ZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7
CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJf
cywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFM
OjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6
VGV4dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxh
dXRzID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNo
ZWNrVVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4
NTkxLCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9o
b3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmlu
Zygid3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVD
MyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMl
OUMlRDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAKaW5kZXggMmRkN2U0YWU3YTAxYzI5ZWYxNGJl
ODlmZWRhYjI4NWQ5NzZmOTgwMy4uMWE1YjVkNmFkOGRkMTc1ODk2ODk5NDRiZGJjOTQ2MzY4Mzdl
ODE2NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJB
Z2VudFF1aXJrcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1Vz
ZXJBZ2VudFF1aXJrcy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNDaHJvbWVCcm93c2Vy
UXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJk
VXNlckFnZW50Rm9yVVJMKFVSTCggU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJp
bmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkp
KTsKIAogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJDaHJvbWUiKSk7CiAgICAg
RVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIlNhZmFyaSIpKTsKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzQ2hyb21lQnJvd3NlclF1aXJr
KGNvbnN0IGNoYXIqIHVybCkKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFz
RmlyZWZveEJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3Ry
aW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAg
U3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJv
bUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuY29udGFpbnMoIkNo
cm9tZSIpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuY29udGFpbnMoIlNhZmFyaSIpKTsK
QEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRmly
ZWZveEJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVz
ZXJBZ2VudEZvclVSTEhhc01hY1BsYXRmb3JtUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAg
IFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1
cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVS
TChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcu
Y29udGFpbnMoIk1hY2ludG9zaCIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlu
cygiTWFjIE9TIFgiKSk7CkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJB
Z2VudEZvclVSTEhhc01hY1BsYXRmb3JtUXVpcmsoY29uc3QgY2hhciogdXJsKQogLy8gdGhhdCB0
aGUgc3RhbmRhcmQgdXNlciBhZ2VudCBzaG91bGQgYmUgdXNlZC4pCiBzdGF0aWMgdm9pZCBhc3Nl
cnRVc2VyQWdlbnRGb3JVUkxIYXNFbXB0eVF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBT
dHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJs
IH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuaXNO
dWxsKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRj
ZTRmMThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAuLjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVk
MjE2OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5
OSw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhp
cyBjYXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJv
dGggdGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0
aGUgZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwg
ZGF0YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJl
IHJlbW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsK
KyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3Jn
Il9zLCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxl
dGVPcmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2Us
IHdlIHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRh
YmFzZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8g
VGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMg
dGFibGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRp
c2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyAr
MjcyLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFu
ZCBhIGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNo
b3VsZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNo
b3VsZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8g
VGVzdCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vz
bid0IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0
YWJhc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2
ZWQ0MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMwNmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWVi
ZDkxMDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJl
Zj4gdGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhB
eWJwazRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJM
a1Q0NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2
OEJuMVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBG
bTFTd2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhn
T3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNv
ZGVkQ2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Fo
a2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRh
aW5QdHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICI0Nml6aG91M0dTS3oz
WDFlWXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAg
ICI5NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0
b0lNQUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJP
aVEyVm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3Yx
dDg9Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0
byBwcml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwog
ICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlm
aWNhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEw
ZWY5OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlhNTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRB
dHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWdu
VW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25p
bmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1
ZXN0Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVx
dWVzdDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0
cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5s
aW5rYWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWdu
aW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3Vu
bGlua2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2Vu
Il9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3Ro
KCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmlu
Zy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25V
bmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmlu
Z1BhcnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJl
cXVlc3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsK
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2ln
bmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9z
ZWNyZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFy
dHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90
b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3Ry
aW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAg
LTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNv
ZGUodG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
dG9rZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZl
Y3Rvci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5T
aWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9
PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2Vu
X3NpZ25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1
cmUiX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0g
cmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4
ODJmZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgwMDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5
MjdmYzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyAr
NzM4OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdB
d2F5RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMg
fTsKIGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owot
c3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09Q
LCBjb25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0
U3dhcCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNv
dXJjZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRp
b25DT09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1l
T3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0
U3dhcCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwog
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VI
ZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291
cmNlQ09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFk
ZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChz
b3VyY2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVk
ZGVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVy
cy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3Rp
bmF0aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAg
aWYgKGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAg
ICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3ki
X3MsIGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAg
ZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywg
U3RyaW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAg
IEhUVFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFk
ZXJzKSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6
ZXJfbGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6
OlByb3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNv
dXJjZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tX
S1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklz
b2xhdGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIp
ICYmIHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0g
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVz
dGluYXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7
CisgICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09Q
ID09ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7Cisg
ICAgYm9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0
aW9uQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJl
LWNvcnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3
YXAgPT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4
MiwyMTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29u
c3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
dW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9D
T09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51
bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4t
YWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNh
bWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5k
Q09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29y
cCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVz
dGluYXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1l
T3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNz
aW5nIENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsK
ICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2
ZSBDT09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVj
dCkKIHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNu
J3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZ
ZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
bnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3Jw
IiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1
aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1
bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3Ms
ICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlz
SklURW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4
IGM4MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJiYTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRj
NzAwNjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0y
MTM1LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAg
ICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIo
W10gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWlu
Qnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhU
VFBSZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5C
eXRlcykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNl
aXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxp
emUoKSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNw
b25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9
LCBjb250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rv
cjxjaGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dl
ZHN1YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJf
cykuc2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4
IGZkZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJlNTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJk
MWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUg
aWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0
IGNoYXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAi
PGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwv
aHRtbD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8
aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5
LDcgQEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0
bWw+Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAppbmRleCAwNTQwNTUzN2E3NTc0OGQwZmVm
ZjhkZjU4ZDQ2NTA2YjA2ZDIxNWFlLi5kMDIwZDZlOGVjODdhNzM1NzA0YWY1ZjViZjJiYTgyNGZk
ZmI4ZDVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFNTTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RTU0wuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHVibGljOgogICAgICAgICBhc3NlcnRPYmpl
Y3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGNlcnRpZmljYXRlKSk7CiAgICAg
ICAgIG1fY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0ZTsKICAgICAgICAgbV90bHNFcnJvcnMgPSB0
bHNFcnJvcnM7Ci0gICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTChTdHJpbmcgeyBmYWlsaW5nVVJJ
IH0pOworICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGZhaWxp
bmdVUkkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IGI3
YzFjYzFjNWM1M2I5NzA2ZWRkNGJjNGY3NzJjYTI5NjNkMTM0MmYuLmQ4NTUwOGE1ZDMyZTZhNzcw
NWMzMGU3ZWVlOTg2YTg4MWUxNDA0ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgd2luZG93UHJvcGVydGllc05vdGlmeUNhbGxiYWNr
KEdPYmplY3QqLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMsIFVJQ2xpZW50VGVzdCogdGVzdCkKICAg
ICB7Ci0gICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0cmluZyB7
IGdfcGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpIH0pOworICAgICAgICB0ZXN0LT5tX3dp
bmRvd1Byb3BlcnRpZXNDaGFuZ2VkLmFkZChTdHJpbmc6OmZyb21MYXRpbjEoZ19wYXJhbV9zcGVj
X2dldF9uYW1lKHBhcmFtU3BlYykpKTsKICAgICB9CiAKICAgICBzdGF0aWMgV2ViS2l0V2ViVmll
dyogdmlld0NyZWF0ZUNhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE5hdmln
YXRpb25BY3Rpb24qIG5hdmlnYXRpb24sIFVJQ2xpZW50VGVzdCogdGVzdCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCmluZGV4IGM1NjkwMmEyMjk3MDcyMmQzY2MxMTZiYmEzMTBkZGI2YjQzZGU4OWIuLjdk
ZWQ2NmNlNjZkYzVhNGFhMzMyMzcxMDkwYTBhNDkwZTk4ZTM3NTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25z
LmNwcApAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25QYWdl
SUQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgLy8gUmVnaXN0ZXIgYSBj
dXN0b20gVVJJIHNjaGVtZSB0byB0ZXN0IGhpc3RvcnkgbmF2aWdhdGlvbi4KICAgICB3ZWJraXRf
d2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCks
ICJmb28iLAogICAgICAgICBbXShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9p
bnRlcikgewotICAgICAgICAgICAgVVJMIHVybCA9IFVSTChTdHJpbmcgeyB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgICAgICAgICBVUkwgdXJsID0g
VVJMKFN0cmluZzo6ZnJvbUxhdGluMSh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmko
cmVxdWVzdCkpKTsKICAgICAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVh
bSA9IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwogICAgICAgICAgICAg
Y2hhciogaHRtbCA9IGdfc3RyZHVwX3ByaW50ZigiPGh0bWw+PGhlYWQ+PHRpdGxlPiVzPC90aXRs
ZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCB1cmwuaG9zdCgpID09ICJob3N0NSIgPyAi
VGl0bGU1IiA6ICJUaXRsZTYiKTsKICAgICAgICAgICAgIGdfbWVtb3J5X2lucHV0X3N0cmVhbV9h
ZGRfZGF0YShHX01FTU9SWV9JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0uZ2V0KCkpLCBodG1sLCBz
dHJsZW4oaHRtbCksIGdfZnJlZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNDNj
OTNlYTk4NGMzYTZmYjVmYjQwOWEyMDdiYzdmODY1NzNjZDdkLi4zMTIwNzhmN2NhNGFhOTA3OWRi
NDY4MzA5NDgwNWVhYmVmOTIzOGZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTE5
NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiAKIFN0cmluZyBnZW5lcmF0ZUhUTUxDb250ZW50KHVuc2ln
bmVkIGNvbnRlbnRMZW5ndGgpCiB7Ci0gICAgU3RyaW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Nzg5MCIpOworICAgIFN0cmluZyBiYXNlU3RyaW5nKCJhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiX3MpOwogICAgIHVuc2lnbmVkIGJhc2VM
ZW5ndGggPSBiYXNlU3RyaW5nLmxlbmd0aCgpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVD
YW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVD
YW5Db3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdm
OTkuLjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwu
bW0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5D
b3B5VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAg
CiAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJk
IGdlbmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53
ZWJraXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1
dGVTdHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEp
OwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmll
d0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgz
YTMuLmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAg
LTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAg
ICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICop
W2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0
ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0K
aW5kZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4
OWU3NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJM
IGQKIAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVy
dFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihX
ZWJGcmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmco
bWVzc2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2Fn
ZSkpOwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVj
MTJhZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9p
ZCBDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2Nr
ZXQiIH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAg
ICAgICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVl
c3QpIH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAg
ICAgICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJT
ZWMtV2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQog
ICAgICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6
Tm8pLCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyAr
NjMzLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAg
ICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQ
UkZSSXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15
WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlE
QStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5
a1prN21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVz
PSJfcyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUo
cGVtRW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRp
ZmljYXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6
dGVzdFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJq
a1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZm
Vmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9i
dmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRn
ckZlIgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZV
OGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2
YXRlS2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4g
V1RGTW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcAppbmRleCAyODAzNDEx
NDBmMDJmODRmNzk0OTRlZWM0YjdlMzZiMTFjMDk5ZDgzLi44ZGZhNGUyM2Y0ZTQ5MDI1MmIzOWE0
YjY2N2ZhYjkzMjI1Y2RhY2YxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcApAQCAtMTAxLDEyICsxMDEsMTIg
QEAgQ1N0cmluZyBXZWJLaXRUZXN0U2VydmVyOjpnZXRXZWJTb2NrZXRVUklGb3JQYXRoKGNvbnN0
IGNoYXIqIHBhdGgpIGNvbnN0CiB7CiAgICAgZ19hc3NlcnRfZmFsc2UobV9iYXNlV2ViU29ja2V0
VVJMLmlzTnVsbCgpKTsKICAgICBnX2Fzc2VydF90cnVlKHBhdGggJiYgKnBhdGggPT0gJy8nKTsK
LSAgICByZXR1cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVSTCwgU3RyaW5nIHsgcGF0aCArIDEgfSku
c3RyaW5nKCkudXRmOCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcgc2xhc2guCisgICAgcmV0dXJu
IFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmluZzo6ZnJvbUxhdGluMShwYXRoICsgMSkpLnN0
cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNsYXNoLgogfQogCiBDU3RyaW5n
IFdlYktpdFRlc3RTZXJ2ZXI6OmdldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QK
IHsKLSAgICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3RyaW5nIHsgcGF0aCB9KS5zdHJpbmcoKS51
dGY4KCk7CisgICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZzo6ZnJvbUxhdGluMShwYXRo
KSkuc3RyaW5nKCkudXRmOCgpOwogfQogCiB1bnNpZ25lZCBXZWJLaXRUZXN0U2VydmVyOjpwb3J0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0
Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENv
bnRyb2xsZXJHdGsuY3BwCmluZGV4IDJhODg1MjcxNGFlZmYxYTIxOWQxN2RhNTJmOGU1N2U3ZWI2
NWU5MTguLjQyZmMwYjRmMTNjMTRhZjQ2NDljNjY4NTEyM2YzNjEwMTBlMmZlZTMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNw
cApAQCAtMTg1LDExICsxODUsMTEgQEAgc3RhdGljIFJlZjxKU09OOjpPYmplY3Q+IHRvSlNPTk9i
amVjdChHVmFyaWFudCogdmFyaWFudCkKICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgm
aXRlciwgInsmc3Z9IiwgJmtleSwgJnZhbHVlKSkgewogICAgICAgICBjb25zdCBHVmFyaWFudFR5
cGUqIHR5cGUgPSBnX3ZhcmlhbnRfZ2V0X3R5cGUodmFsdWUpOwogICAgICAgICBpZiAodHlwZSAm
JiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKSkKLSAg
ICAgICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmcgeyBrZXkgfSwgdG9KU09OT2Jq
ZWN0KHZhbHVlKSk7CisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nOjpm
cm9tTGF0aW4xKGtleSksIHRvSlNPTk9iamVjdCh2YWx1ZSkpOwogICAgICAgICBlbHNlIGlmICh0
eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1NUUklORykp
Ci0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nIHsga2V5IH0sIFN0cmlu
ZyB7IGdfdmFyaWFudF9nZXRfc3RyaW5nKHZhbHVlLCBudWxscHRyKSB9KTsKKyAgICAgICAgICAg
IGpzb25PYmplY3QtPnNldFN0cmluZyhTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgU3RyaW5nOjpm
cm9tTGF0aW4xKGdfdmFyaWFudF9nZXRfc3RyaW5nKHZhbHVlLCBudWxscHRyKSkpOwogICAgICAg
ICBlbHNlIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9U
WVBFX0RPVUJMRSkpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXREb3VibGUoU3RyaW5nIHsg
a2V5IH0sIGdfdmFyaWFudF9nZXRfZG91YmxlKHZhbHVlKSk7CisgICAgICAgICAgICBqc29uT2Jq
ZWN0LT5zZXREb3VibGUoU3RyaW5nOjpmcm9tTGF0aW4xKGtleSksIGdfdmFyaWFudF9nZXRfZG91
YmxlKHZhbHVlKSk7CiAgICAgfQogICAgIHJldHVybiBqc29uT2JqZWN0OwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRi
V2ViS2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4
NDE1MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29s
cy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVt
IGNsYXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJz
KCkKIHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0
cmluZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcu
aW1wbCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBh
bkVtcHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBs
ID0gYW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLD
qXN1bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJy
w6lzdW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJp
bmcuaW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUx
NjgwQ2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457182</attachid>
            <date>2022-04-09 14:22:07 -0700</date>
            <delta_ts>2022-04-09 16:32:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409142206.patch</filename>
            <type>text/plain</type>
            <size>221503</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBmM2EyNzIzYzEyODMwZDJkMDkuLjE1
YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNlckNvbnRlbnRNYW5hZ2VyRGVzdHJv
eWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZy
b21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAg
ICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9MSUNZX0VSUk9SLCBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBzaG93IGluc3BlY3RvciBVUkw6IG5v
IHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBi
OTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRm
YzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xv
ci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2Vi
S2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
clN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsK
KyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldp
dGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICgh
d2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2Jk
MGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdv
cmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0
b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVu
dGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0
aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3Ry
aW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1m
ZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xp
ZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdw
ZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9w
dCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0g
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9h
ZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9
IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDgg
KzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFw
cCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBs
aWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJp
bmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0
aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmlu
c3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVj
dG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCmluZGV4IGZlMDRjMWZmNDQxNjFjMDc2ZjUzN2RhNTEz
Y2MyZDcxNWNhOTAwM2UuLmJlOWJhNGM2MDkyMGI0Zjc4OGEyYWJjNTkwOGQ2ZGZhYzA0OGYxMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNs
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNs
YXRvci5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFZlY3RvcjxTdHJp
bmc+IGNvbW1hbmRzRm9yS2V5dmFsKHVuc2lnbmVkIGtleXZhbCwgdW5zaWduZWQgbW9kaWZpZXJz
KTsKIAotICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRvckNvbW1hbmQoY29uc3QgY2hhciogY29tbWFu
ZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5hcHBlbmQoY29tbWFuZCk7IH0KKyAgICB2b2lk
IGFkZFBlbmRpbmdFZGl0b3JDb21tYW5kKGNvbnN0IGNoYXIqIGNvbW1hbmQpIHsgbV9wZW5kaW5n
RWRpdG9yQ29tbWFuZHMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShjb21tYW5kKSk7IH0KIAog
cHJpdmF0ZToKICAgICBHdGtXaWRnZXQqIG1fbmF0aXZlV2lkZ2V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRX
UEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJF
ZGl0b3JDbGllbnRXUEUuY3BwCmluZGV4IDMzODRmYTI1OGMyMGY0NDZmMjEyZGFlMmMyNGRjOWQ4
MTIyYmFkMDEuLjc2ZTZjZWZlOTBkYzAwYmUzODRiMzU3ZmQ2MTkxZTZkZWFmYTQyMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRp
dG9yQ2xpZW50V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0
aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZl
bnQpCiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRF
dmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkK
IHsKLSAgICBTdHJpbmcgY29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsK
KyAgICBhdXRvIGNvbW1hbmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2
ZW50KGV2ZW50KSk7CiAKICAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgewogICAgICAg
ICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CkBAIC0xOTAs
NyArMTkwLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXli
b2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXkKIAogc3RhdGljIHZvaWQgaGFuZGxl
S2V5RG93bihGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQmKQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJldEtl
eUV2ZW50KGV2ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21MYXRp
bjEoaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKICAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAppbmRleCA3NjQ0M2E5NDI1NGFlNGZlOGU1OGY4
MDdiYWE1MjE1NmMzNjdkMTFkLi5jNzdmZjc4Y2QzY2Q5NjI3ZDFhZTdiOTMwYzgxNDU3MDk0NjQ1
MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2Vi
UGFnZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dl
YlBhZ2VXaW4uY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0
aW5nS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAo
ZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgp
ICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRl
cnByZXRLZXlFdmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0
b3IoKS5jb21tYW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQp
KSk7CiAKICAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9u
IGFib3V0IG1vZGUgdG8gZGVjaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNz
aWJsZVRleHRJbXBsLmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMx
MWVjNjg0Li4zNWMyODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3
ICs2NzYsNyBAQCBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3Rh
cnRPZmZzZXQsIGxvbmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVT
VUxUIEFjY2Vzc2libGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewot
ICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0
ZXh0KCJ0ZXh0LW1vZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCku
cmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCmluZGV4IGYxMzE2ZGU0NmMyMTM1YTZkMjZmYWI5ZDE0
NGRlYjNmODFmMDg5MzguLjAxYTYxMmZkYTMyODlkOTY3Y2E5NjcyY2M0MjNlMWQzNWRhNTU5Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAg
LTE0OSw3ICsxNDksNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0UHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cyhfQ09NX091dHB0cl9vcHRfCiAgICAgSXRlcmF0b3IgZW5k
ID0ganNPYmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5
cGVDb3VudE1hcDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVjdFR5cGVOYW1l
cy0+YmVnaW4oKTsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgdHlwZUNvdW50
TWFwLnNldChTdHJpbmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUpOworICAgICAg
ICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5rZXkpLCBjdXJy
ZW50LT52YWx1ZSk7CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0cyhBZG9wdENP
TSwgQ09NUHJvcGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50TWFwKSk7CiAg
ICAgcmVzdWx0cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKQEAgLTE2Nyw3ICsxNjcs
NyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50
cyhfQ09NX091dHB0cl9vcHRfIElQcm9wZXJ0eQogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0
VHlwZU5hbWVzLT5lbmQoKTsKICAgICBIYXNoTWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7
CiAgICAgZm9yIChJdGVyYXRvciBjdXJyZW50ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7
IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQpCi0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3Ry
aW5nIHsgY3VycmVudC0+a2V5IH0sIGN1cnJlbnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50
TWFwLnNldChTdHJpbmc6OmZyb21MYXRpbjEoY3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUp
OwogCiAgICAgQ09NUHRyPElQcm9wZXJ0eUJhZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3Bl
cnR5QmFnPGludD46OmNyZWF0ZUluc3RhbmNlKHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMu
Y29weVJlZlRvKHR5cGVOYW1lc0FuZENvdW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAx
YzdhZmQwNTMxYTkyZjMyN2MzMzZiNjVmM2ExMmUwOTMyYTY4ZmQ2Li5iMjM5Mzc2MjQwZGM5ZDIz
MDFmZTVjNTk0YjcxNzQ0ZGU2ZTIyNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ1NCw3
ICs0NTQsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2
ZW50KEVsZW1lbnQqIGUsIEtleWJvYXJkRXZlbnQqIGtlKQogICAgICAgICBpZiAoZG9tRWxlbWVu
dCkgewogICAgICAgICAgICAgSURPTUhUTUxJbnB1dEVsZW1lbnQqIGRvbUlucHV0RWxlbWVudDsK
ICAgICAgICAgICAgIGlmIChTVUNDRUVERUQoZG9tRWxlbWVudC0+UXVlcnlJbnRlcmZhY2UoSUlE
X0lET01IVE1MSW5wdXRFbGVtZW50LCAodm9pZCoqKSZkb21JbnB1dEVsZW1lbnQpKSkgewotICAg
ICAgICAgICAgICAgIFN0cmluZyBjb21tYW5kIHsgbV93ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVu
dChrZSkgfTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvbW1hbmQgPSBTdHJpbmc6OmZyb21MYXRp
bjEobV93ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkpOwogICAgICAgICAgICAgICAgIC8v
IFdlIGFsbG93IGVtcHR5IGNvbW1hbmRzIGhlcmUgYmVjYXVzZSB0aGUgYXBwIGNvZGUgYWN0dWFs
bHkgZGVwZW5kcyBvbiB0aGlzIGJlaW5nIGNhbGxlZCBmb3IgYWxsIGtleSBwcmVzc2VzLgogICAg
ICAgICAgICAgICAgIC8vIFdlIG1heSB3YW50IHRvIHJldmlzaXQgdGhpcyBsYXRlciBiZWNhdXNl
IGl0IGRvZXNuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gc2VuZCBhbiBlbXB0eSBjb21tYW5kLgog
ICAgICAgICAgICAgICAgIGZvcm1EZWxlZ2F0ZS0+ZG9QbGF0Zm9ybUNvbW1hbmQoZG9tSW5wdXRF
bGVtZW50LCBCU3RyaW5nKGNvbW1hbmQpLCBraXQoZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKSwgJnJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmE5NTM3MjcyZjcyNmZl
ZDMzYzdiZjIyZWEzZWIzODhjMzk0Y2QxMS4uN2NlMjA3MTIwY2Q2Zjc2ZTBkYjcwZmRlYTQwZTE4
MzNjYjU2ZWRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzUwLDcgKzc1
MCw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgQ2hp
Y2tlbkNhdCB0byBpbmNsdWRlIENGTmV0d29yay9DRlVSTEVycm9yLmggdG8gZ2V0IHRoZXNlIHZh
bHVlcwogICAgIC8vIEFsdGVybmF0aXZlbHksIHdlIGNvdWxkIGNyZWF0ZSBvdXIgb3duIGVycm9y
IGRvbWFpbi9jb2Rlcy4KLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJy
b3JEb21haW4pLCAtOTk5LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCIpKTsKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtOTk5LCBy
ZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCJfcykpOwogfQogCiBSZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KSBjb25zdApAQCAtNzgwLDcgKzc4MCw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVz
cG9uCiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhp
c3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVz
cG9uc2UudXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iKSk7CisgICAgcmV0dXJu
IFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNl
LnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIl9zKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCmluZGV4IDdmNTIxZGEwZmRhMjRhNTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzgu
Ljc3MjRmYjAwMmExYWEyODAzNmIyZjBmYjJjZDA0ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCBib29sIFdlYlZpZXc6Omhh
bmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChl
dmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkg
IT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVy
cHJldEtleUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRv
cigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkp
KTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24g
YWJvdXQgbW9kZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBp
ZiBleGVjdXRlZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5k
ZXggMDAwNWQwMTBkMzViYzZjNThjMTg2OWQxMWFjNzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQy
NDg2MTQ0MDU2Y2U4MzQ4ZjU5NTA5ZjU2ZGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0
Nyw1IEBAIFN0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKCkKICAgICAgICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VY
SVNUUykKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5n
KGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFi
YXNlRGlyZWN0b3J5KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4z
NDhkODVhYjk2ZGJiYWZmMWI0ZDZjNzM5MGExMzNlZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjIt
MDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2gg
cG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5n
KGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZT
dHJpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Rf
Rik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRF
bmNvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHky
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmli
dXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5k
U2VuZFNlY3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxl
Z2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVk
QnlGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2Up
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwog
MjAyMi0wNC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01lcmdlLVF1ZXVlXSBDcmVhdGUgc2VwZXJhdGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9u
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMTk2
NjhjY2Q3NDliYmU5YTY4OGUwNjg0MzcwODhmZDM2NThhZjg2Li5jOGU4MzAyYmYyOTdhMzExNGRl
MjAzYzM1YjEyMzlmMTI1MzBkMTcyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTExNzUsMTAgKzExNzUsMTAgQEAgc3RhdGljIGJvb2wgaGFuZGxl
Q29udHJvbENvbW1hbmQoY29uc3QgY2hhciogY29tbWFuZCkKIHsKICAgICBpZiAoIXN0cmNtcCgi
I0NIRUNLIEZPUiBBQkFORE9ORUQgRE9DVU1FTlRTIiwgY29tbWFuZCkpIHsKICAgICAgICAgLy8g
RHVtcFJlbmRlclRyZWUgZG9lcyBub3Qgc3VwcG9ydCBjaGVja2luZyBmb3IgYWJhbmRvbmRlZCBk
b2N1bWVudHMuCi0gICAgICAgIFN0cmluZyByZXN1bHQoIlxuIik7CisgICAgICAgIENTdHJpbmcg
cmVzdWx0KCJcbiIpOwogICAgICAgICBwcmludGYoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxu
Iik7CiAgICAgICAgIHByaW50ZigiQ29udGVudC1MZW5ndGg6ICV1XG4iLCByZXN1bHQubGVuZ3Ro
KCkpOwotICAgICAgICBmd3JpdGUocmVzdWx0LnV0ZjgoKS5kYXRhKCksIDEsIHJlc3VsdC5sZW5n
dGgoKSwgc3Rkb3V0KTsKKyAgICAgICAgZndyaXRlKHJlc3VsdC5kYXRhKCksIDEsIHJlc3VsdC5s
ZW5ndGgoKSwgc3Rkb3V0KTsKICAgICAgICAgcHJpbnRmKCIjRU9GXG4iKTsKICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICIjRU9GXG4iKTsKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5k
ZXggNGQ2NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYy
YTRhNTVkZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5TFZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3Ry
aW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENv
cHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVm
KCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3
ICs0NSw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVY
UEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3Jp
Z2luYWwuaW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0
cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBv
cmlnaW5hbCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdp
bmFsKSk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpA
QCAtNjMsNyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5n
SGF2aW5nVHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9u
YWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQi
IH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAg
ICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVF
KG9yaWdpbmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5p
bXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJl
YWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENv
cGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFs
IHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShv
cmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsK
LSAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0
Il9zIH07CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAg
ICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEo
b3JpZ2luYWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgy
ZDVkYWE1YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAt
MTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdN
aXNzaW5nRmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVt
OjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxl
Il9zKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAg
RVhQRUNUX0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5
ZTZkYzlkMjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJi
MGJkYTlkOTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hleE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVy
KQogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVy
LmFwcGVuZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aGV4KGludGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50
ZWdlciwgNCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBh
IiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIs
IDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3
MjU4OTU2ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlk
ZThkYTE5MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFw
cGVuZCkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVm
Z2giLCAzKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBi
dWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCcjJyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1
aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3Ms
IGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5
U3RyaW5nKCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVu
ZENoYXJhY3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1
aWxkZXIuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBw
ZW5kKCJYWVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFj
dGVyczgoKSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcj
WFlaIl9zLCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVp
bGRlcjIucmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRT
dHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJp
bmcuY19zdHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJp
YWRpY0FwcGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
YWJjZCIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9z
LCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IkEiKSwgIkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIi
KTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFi
Y2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFC
QyIpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2Ug
dXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9u
J3QgZml0IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFi
Y2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
ci5pczhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxk
ZXIubGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJC
IiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7
CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUg
U3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGlu
IHRoZSBjYXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1
aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5p
czhCaXQoKSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIu
bGVuZ3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwg
YnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIi
LCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAg
ICAgfQogfQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9T
dHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIw
MTIzNDU2Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5p
bXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5n
aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9T
dHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hh
bmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0
IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0g
YnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcx
KTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmlu
ZygpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KICAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5r
KDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBi
dWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFj
aXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1Rf
RVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBs
KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0
ZXJzOCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3Qg
YWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCku
CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0
cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdl
ZC4KICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkg
QEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAg
IHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNU
X0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
X3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBv
ZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVu
dCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHko
KTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVY
UEVDVF9FUShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5k
KCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBh
Y2l0eSgpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCks
IGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5n
MSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAs
MTUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5k
KCIwMTIzNDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgx
MFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3Ms
IGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVp
bGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsK
IAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBF
WFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYi
X3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1
aWxkZXIpOwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwg
RXF1YWwpCiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFy
Kj4oMCksIDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIxICE9IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmlu
ZygiYWJjIl9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIx
LnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBi
dWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09
IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiMTIzIl9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBi
dWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5n
KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MSAhPSBidWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRv
QXRvbVN0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxk
ZXIucmVzZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRT
aHJpbmtUb0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1w
bC5jcHAKaW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIz
MzE2NWI2Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRF
U1QoV1RGLCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQog
CiBURVNUKFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBT
dHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1Qi
X3MpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAg
ICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAK
ICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJp
bmcoKSwgInQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1
MTc1MDY5NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRF
U1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7
CisgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJp
bmcoIkF0b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVy
YWwiX3MgfTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9
OworICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAg
U3RyaW5nVmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVD
VF9FUSgwLCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3
YmY3OGVhZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyAr
NDUsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAg
ICBTdHJpbmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5n
Vmlldzo6ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7
CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5n
VmlldyB2aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQ
RUNUX1RSVUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0
LDcgKzg0LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAg
ICAgICAgIFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0
cmluZygiaGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5n
KCJoZWxsbyJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxs
KCkpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApA
QCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVV
bml0cygpLCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3Ry
aW5nVmlldzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5n
IGhlbG8oImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmll
dyBoZWxvVmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQ
b2ludHMoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9y
cykKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9p
bnRzSXRlcmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0
ZXJhdG9yLCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3
ZWJraXQoIndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmll
dyh3ZWJraXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRD
b2RlUG9pbnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAg
Kzk4MywxMCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0
Y2hlZENoYXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAg
ICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgp
KTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJ
SSgpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0Fs
bEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykp
LmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29h
Il9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6
OmZyb21MYXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3Ry
aW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAg
IEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+
KHUiSGVsbG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9VUkwuY3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTgu
LjU1MTdhZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJM
LCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQo
KSk7CiAKICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3Ry
aW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwu
aG9zdCgpLnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAg
IEVYUEVDVF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ1c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFz
c3dvcmQiKSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXgu
aHRtbCIpLCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIp
LCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12
YWwiKSwga3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyks
IGt1cmwudXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwu
cGFzc3dvcmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJs
LnBhdGgoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFz
dFBhdGhDb21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1
cmwucXVlcnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50
aWZpZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdt
ZW50SWRlbnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFs
IHVybEFzU3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFT
Q0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RB
bmRQb3J0KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFz
c3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9z
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgw
ODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9z
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0
dHA6Ly86cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFn
bWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4
MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9i
L2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cu
ZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNk
ZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJhc2RmOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihX
VEZfVVJMLCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNU
X0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwx
ID0gY3JlYXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwx
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTIgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwg
dXJsMzMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsK
QEAgLTM4OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1
cmw0KSwgdGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtl
eTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsK
ICAgICBVUkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVj
dG9yMTMxNCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7Imtl
eTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwg
dXJsMTYpLCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJM
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVS
TCB1cmwxMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5
MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEy
KTsKICAgICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwg
eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsg
eyJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2
YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAK
ICAgICBVUkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12
YWwyJmtleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0s
IHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsi
a2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwy
MSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJs
MjIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwot
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7
eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3Mg
fSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIz
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwg
dXJsMjQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAi
PSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQp
LCB0ZXN0VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7
Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0
ZXN0VmVjdG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7
ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAg
IAogICAgIFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9z
KTsKICAgICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9z
KTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMx
MzIge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAg
CiAgICAgVVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9z
KTsKICAgICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iy
NTI2IHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZm
ZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYw
YzczYTUwMDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5
MGNjYzIwNDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9WZWN0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5j
cHAKQEAgLTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBU
RVNUKFdURl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9
KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBt
YXAuc2V0KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJr
MSJfcywgInYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0
KCJrMyJfcywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0g
KEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAg
IHJldHVybiBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvV1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4u
NWIyMTcyZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVT
VChXVEYsIFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigi
RXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
Lmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgi
LCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNp
dCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9
ICJTdHJpbmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRl
cmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmlu
ZyBMaXRlcmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zy
b21MaXRlcmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJh
bCIpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExp
dGVyYWwiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJ
SSkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVs
bCkKIHsKICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBX
VEY6OmVtcHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxs
byIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7
CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0
cmluZykpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4p
CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4
cGVjdGVkU3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3Rl
ZFN0cmluZy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJv
bUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdS
ZXBsYWNlV2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5n
VG9Eb3VibGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2sp
KTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIw
IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUo
Jm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9UUlVFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkp
OwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVY
UEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAK
ICAgICAvLyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91
YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykp
OwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFk
aW5nIHNwYWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEu
MCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwog
CiAgICAgLy8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNo
IGFsd2F5cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28g
Z29pbmcgdG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjF4IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVj
aWFsIHZhbHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
ImluZmluaXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZp
bml0eSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5p
dHkiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHki
X3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJz
ZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygibmFuIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJf
cykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYs
IFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygi
VGUiKSwgMikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZygiVGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3Mp
LmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9z
LCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGlu
Z0F0KCJUZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3Qi
X3MpLmhhc0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShT
dHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0
cmluZzo6ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRF
U1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmlu
Zzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4
KCLkuK0iKSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdB
dChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFz
SW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUi
X3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0
aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmlu
Z0V4aXN0aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIp
OworICAgIFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgp
LT5oYXNIYXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYz
LDcgQEAgVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1Vu
aWNvZGVFcXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAg
IFN0cmluZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVs
bCgpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltd
ID0geyAnYScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2Ex
NGI3NTg1MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2Uw
YzgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygi
YXthLGJ9Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1
czo6T2spOwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAg
dGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6
OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVy
blN0YXR1cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6
VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxy
XFxuIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6
T2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKaW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUz
NWQ5NWJiNTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAgICAgCi1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3Qi
KTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hh
bmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25k
UmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citj
b25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRl
eHQgZm9yIHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlz
ZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNs
YXNzIEZpbGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmll
bGQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVs
ZC5jcHAKaW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIz
ZDU4OGFhNDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0
LDkgKzc0LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwi
XCIiX3MsCiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIp
ICgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAg
U3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7
IG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4x
KG5vbkFTQ0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1
b3RlZFBhaXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlR
dW90ZWRQYWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsK
QEAgLTk1LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAg
ImE6IChcYSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAo
Yil9KChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3Ry
aW5nOjpmcm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJl
Y29tZSh7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5
ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41
NmE1OWYyZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRD
b2RpbmcsIFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFs
dWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWRE
ZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJV
RSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAm
V2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkp
OwogfQogCiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXgg
YTdmYTQ0MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUz
ZTI4ZGEwNmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRF
U1RfRihQdWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQ
RUNUX0VRKFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNc
dTY3MjguanAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJjb20udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVr
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLmJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEu
dHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHci
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiY29tLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3Mp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54
bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16
ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9F
UShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVY
UEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
cjQtLS1hc2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigicjQtLS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2
U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9t
YWluKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWlu
LkV4YW1QbGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2Nh
bEhvc3QiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5
Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XD
hMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
Ii50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJs
b2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9t
TGF0aW4xKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9z
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNi
NGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5j
cHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3Bz
KQogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewog
ICAgICAgICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVv
Zih0b3BpYyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3Ry
aW5nIHsgc2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGlj
IH07CisgICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUp
OworICAgICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsK
IAogICAgICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJl
c3VsdCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3
YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdi
YWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBj
cmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3Rpbmdf
ZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRl
bnRzT2ZGaWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVM
TChidWZmZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBi
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBh
dGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVm
ZmVyLT5zaXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0
YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihG
cmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0Vt
cHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9V
UkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTlj
ODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0
YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBh
cnNlclRleHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0Yo
VVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VS
TCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3Ry
aW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQi
KX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNv
ZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0
aW4xKCJsYXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBz
cGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmco
KSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0
cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVt
cHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0
cDovL2hvc3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0Yo
VVJMUGFyc2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgi
aHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDov
L2hvc3QvPyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5
MShTdHJpbmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEo
IklTTy04ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7
MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6
Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAl
QjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAl
RDElOTEiX3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwg
d2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0
cmluZygpLCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBl
bXB0eVN0cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1
aXJrcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVp
cmtzLmNwcAppbmRleCAyZGQ3ZTRhZTdhMDFjMjllZjE0YmU4OWZlZGFiMjg1ZDk3NmY5ODAzLi4x
YTViNWQ2YWQ4ZGQxNzU4OTY4OTk0NGJkYmM5NDYzNjgzN2U4MTY0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHN0YXRpYyB2b2lkIGFz
c2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwp
CiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKCBT
dHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50
Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUo
dWFTdHJpbmcuY29udGFpbnMoIkNocm9tZSIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5j
b250YWlucygiU2FmYXJpIikpOwpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRV
c2VyQWdlbnRGb3JVUkxIYXNDaHJvbWVCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBz
dGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNv
bnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2Vu
dEZvclVSTChVUkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFu
ZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAg
IEVYUEVDVF9GQUxTRSh1YVN0cmluZy5jb250YWlucygiQ2hyb21lIikpOwogICAgIEVYUEVDVF9G
QUxTRSh1YVN0cmluZy5jb250YWlucygiU2FmYXJpIikpOwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0
aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0
IGNoYXIqIHVybCkKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxh
dGZvcm1RdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3Rh
bmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVh
U3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1
cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiTWFjaW50b3NoIikp
OwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWMgT1MgWCIpKTsKQEAgLTcy
LDcgKzcyLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZv
cm1RdWlyayhjb25zdCBjaGFyKiB1cmwpCiAvLyB0aGF0IHRoZSBzdGFuZGFyZCB1c2VyIGFnZW50
IHNob3VsZCBiZSB1c2VkLikKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Vt
cHR5UXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5k
YXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0
cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJs
KSkpOwogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5pc051bGwoKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFi
YXNlVHJhY2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2Mw
ZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJh
Y2tlclRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L0RhdGFiYXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1v
dmUgdGhlIG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8v
IGFuZCBEYXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2su
CiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBv
cmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBh
dGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFz
ZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhE
YXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQz
LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNO
b3RFeGlzdCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAg
IC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJs
ZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRl
bXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURp
cmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldp
dGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyAr
MTc4LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FE
YXRhYmFzZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0
aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdp
bnMgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpj
cmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAt
MjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlz
c2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxk
IHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8v
IGRhdGFiYXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4g
QWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAv
LyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUg
RGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMp
OwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFz
ZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdl
IHRyeSB0byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAg
ICAvLyBXZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9t
IHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNl
VHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsK
ICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3Ms
IDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hh
bGxlbmdlLm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYu
LmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEs
NyArMTQxLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAg
ICAibWlLMVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFX
a2xveWlZSktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBP
Y1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3Fv
SkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpP
L05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2
NjlRdmFWOXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAg
ICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFr
R0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4g
dGVzdElkZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNv
cWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2
OXBKempUanhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJu
eEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dY
N1ciCi0gICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtN
RzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJh
c2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5
dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4
OGE4MDJlOWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpA
QCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAg
ICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBI
VFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3Qy
LnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0
eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJs
ZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBT
dHJpbmcoImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBA
IC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRT
ZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmco
cmVxdWVzdDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWdu
aW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5n
KCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0
eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVz
dGluYXRpb25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSAr
IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRp
YyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5n
UGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRv
a2VuVmVjdG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8g
U3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5h
dGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpT
b3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmlu
ZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtl
eSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5
Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bmQgPSByZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQx
My4uZGJlODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBj
bGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZl
clNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNP
RVAsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25D
T0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1Nl
cnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFs
IHNvdXJjZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBk
ZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJl
ZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAg
ICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5
cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3Vy
Y2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3Vy
Y2VDT09QKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNv
dXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmco
c291cmNlQ09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVt
YmVkZGVyLVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBkZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29u
dGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQot
ICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSJfcywgU3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRl
cnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsK
ICAgICBpZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQ
KSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRl
ci1Qb2xpY3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0
aW9uUmVzcG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAg
ICAgSFRUUFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJp
bmcsIEhUVFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAg
LTc0MjcsOCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29u
c3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsK
ICAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0g
ICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYm
ICFzdHJjbXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3Ry
Y21wKHNvdXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hv
dWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVz
dGluYXRpb25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNt
cChkZXN0aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3Vs
ZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYm
IHNvdXJjZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hv
dWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdp
biJfcyAmJiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1Rf
VFJVRShzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91
bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMp
OwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3Rh
dGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBj
b25zdCBjaGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
MikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
eyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUi
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7
IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQ
b3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVP
cmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywg
InJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQog
ewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09Q
U2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUt
bm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAi
c2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsK
ICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENP
RVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hv
dWxkIHN3YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJy
ZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3
YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdp
blRvQ09PUEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVj
dCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmln
aW4gYW5kIENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJl
cXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdp
dGhSZWRpcmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7
IH0sIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUt
bm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoeyB9LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
eyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25l
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFu
ZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFu
ZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUi
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2Fm
ZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAq
d2ViVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThh
MTdhYjE0YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJj
MDAwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0
aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8
Y2hhcj4mJikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAi
Q29udGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9
XSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVu
dC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1d
IHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVj
dG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBj
b250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBl
Il9zLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtl
clNjcmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3Qp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25z
dCBjaGFyKilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVx
dWVzdC5zaXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4
NTY3Zjc2YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1Mjhl
YTNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4
Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBj
aGFyIHBhcmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZy
YW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0
YXRpYyBjb25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVG
cmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25z
dGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0n
aW5wdXQnPiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZy
YW1lW10gPQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25z
KTsiCiAiPC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tF
eHBlcmltZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RTU0wuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RTU0wuY3BwCmluZGV4IDA1NDA1NTM3YTc1NzQ4ZDBmZWZmOGRmNThkNDY1MDZiMDZkMjE1YWUu
LmQwMjBkNmU4ZWM4N2E3MzU3MDRhZjVmNWJmMmJhODI0ZmRmYjhkNWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKQEAgLTIzMiw3ICsy
MzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0Rmlu
aXNoZXMoR19PQkpFQ1QoY2VydGlmaWNhdGUpKTsKICAgICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGNl
cnRpZmljYXRlOwogICAgICAgICBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsKLSAgICAgICAgbV9m
YWlsaW5nVVJMID0gVVJMKFN0cmluZyB7IGZhaWxpbmdVUkkgfSk7CisgICAgICAgIG1fZmFpbGlu
Z1VSTCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZmFpbGluZ1VSSSkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggYjdjMWNjMWM1YzUzYjk3MDZlZGQ0YmM0
Zjc3MmNhMjk2M2QxMzQyZi4uZDg1NTA4YTVkMzJlNmE3NzA1YzMwZTdlZWU5ODZhODgxZTE0MDRk
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RV
SUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RVSUNsaWVudC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
dm9pZCB3aW5kb3dQcm9wZXJ0aWVzTm90aWZ5Q2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMq
IHBhcmFtU3BlYywgVUlDbGllbnRUZXN0KiB0ZXN0KQogICAgIHsKLSAgICAgICAgdGVzdC0+bV93
aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nIHsgZ19wYXJhbV9zcGVjX2dldF9uYW1l
KHBhcmFtU3BlYykgfSk7CisgICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSkp
OwogICAgIH0KIAogICAgIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB2aWV3Q3JlYXRlQ2FsbGJhY2so
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlv
biwgVUlDbGllbnRUZXN0KiB0ZXN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5kZXggYzU2OTAyYTIy
OTcwNzIyZDNjYzExNmJiYTMxMGRkYjZiNDNkZTg5Yi4uN2RlZDY2Y2U2NmRjNWE0YWEzMzIzNzEw
OTBhMGE0OTBlOThlMzc1OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC00NzYsNyArNDc2LDcg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvblBhZ2VJRChXZWJWaWV3VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKICAgICAvLyBSZWdpc3RlciBhIGN1c3RvbSBVUkkgc2NoZW1lIHRvIHRl
c3QgaGlzdG9yeSBuYXZpZ2F0aW9uLgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91
cmlfc2NoZW1lKHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSwgImZvbyIsCiAgICAgICAgIFtdKFdl
YktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyKSB7Ci0gICAgICAgICAgICBV
UkwgdXJsID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShy
ZXF1ZXN0KSB9KTsKKyAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4x
KHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgICAgICAg
ICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5
X2lucHV0X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgICAgICBjaGFyKiBodG1sID0gZ19zdHJkdXBf
cHJpbnRmKCI8aHRtbD48aGVhZD48dGl0bGU+JXM8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+
PC9odG1sPiIsIHVybC5ob3N0KCkgPT0gImhvc3Q1IiA/ICJUaXRsZTUiIDogIlRpdGxlNiIpOwog
ICAgICAgICAgICAgZ19tZW1vcnlfaW5wdXRfc3RyZWFtX2FkZF9kYXRhKEdfTUVNT1JZX0lOUFVU
X1NUUkVBTShpbnB1dFN0cmVhbS5nZXQoKSksIGh0bWwsIHN0cmxlbihodG1sKSwgZ19mcmVlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0M2M5M2VhOTg0YzNhNmZiNWZiNDA5YTIw
N2JjN2Y4NjU3M2NkN2QuLjMxMjA3OGY3Y2E0YWE5MDc5ZGI0NjgzMDk0ODA1ZWFiZWY5MjM4ZmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoK
IAogU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKIHsK
LSAgICBTdHJpbmcgYmFzZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3
ODkwIik7CisgICAgU3RyaW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
MDEyMzQ1Nzg5MCJfcyk7CiAgICAgdW5zaWduZWQgYmFzZUxlbmd0aCA9IGJhc2VTdHJpbmcubGVu
Z3RoKCk7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0
ZGE1ZWEyZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0
MjVlYjdhMDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBA
IFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1l
bnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05T
VVJMIFVSTEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhb
dXJsIGFic29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNv
bnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3
YTYyODU3MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVh
NDM2NzQwNjg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdl
YktpdExlZ2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50
ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5
U2VsZWN0b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAg
IAotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5n
KHRleHQpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9z
KSwgU3RyaW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1
MmZkMjdjNzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0
YTljZWExYzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAt
NjQsNyArNjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzoo
V2ViVmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVk
ID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQ
U2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4
IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZl
ZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hU
VFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tl
dEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQog
ICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7
Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsg
IkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQt
QWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAi
VXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJf
cywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9z
LCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShI
VFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlv
bkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhf
dD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZ
dS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5s
SHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5X
NUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFX
OTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIp
OworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRv
IGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUp
OwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5
MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAg
ImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGRO
ako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFn
bTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVS
RzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUy
cGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZm
bDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUo
cGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0
ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9X
ZWJLaXRUZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGli
L1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDI4MDM0MTE0MGYwMmY4NGY3OTQ5NGVlYzRiN2Uz
NmIxMWMwOTlkODMuLjhkZmE0ZTIzZjRlNDkwMjUyYjM5YTRiNjY3ZmFiOTMyMjVjZGFjZjEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RT
ZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktp
dFRlc3RTZXJ2ZXIuY3BwCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBDU3RyaW5nIFdlYktpdFRlc3RT
ZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsK
ICAgICBnX2Fzc2VydF9mYWxzZShtX2Jhc2VXZWJTb2NrZXRVUkwuaXNOdWxsKCkpOwogICAgIGdf
YXNzZXJ0X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycpOwotICAgIHJldHVybiBVUkwobV9iYXNl
V2ViU29ja2V0VVJMLCBTdHJpbmcgeyBwYXRoICsgMSB9KS5zdHJpbmcoKS51dGY4KCk7IC8vIEln
bm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KKyAgICByZXR1cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVS
TCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGggKyAxKSkuc3RyaW5nKCkudXRmOCgpOyAvLyBJZ25v
cmUgdGhlIGxlYWRpbmcgc2xhc2guCiB9CiAKIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0
VVJJRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewotICAgIHJldHVybiBVUkwobV9i
YXNlVVJMLCBTdHJpbmcgeyBwYXRoIH0pLnN0cmluZygpLnV0ZjgoKTsKKyAgICByZXR1cm4gVVJM
KG1fYmFzZVVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGgpKS5zdHJpbmcoKS51dGY4KCk7CiB9
CiAKIHVuc2lnbmVkIFdlYktpdFRlc3RTZXJ2ZXI6OnBvcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKaW5kZXgg
MmE4ODUyNzE0YWVmZjFhMjE5ZDE3ZGE1MmY4ZTU3ZTdlYjY1ZTkxOC4uNDJmYzBiNGYxM2MxNGFm
NDY0OWM2Njg1MTIzZjM2MTAxMGUyZmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0xODUsMTEgKzE4NSwxMSBA
QCBzdGF0aWMgUmVmPEpTT046Ok9iamVjdD4gdG9KU09OT2JqZWN0KEdWYXJpYW50KiB2YXJpYW50
KQogICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVyLCAieyZzdn0iLCAma2V5LCAm
dmFsdWUpKSB7CiAgICAgICAgIGNvbnN0IEdWYXJpYW50VHlwZSogdHlwZSA9IGdfdmFyaWFudF9n
ZXRfdHlwZSh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFs
KHR5cGUsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQotICAgICAgICAgICAganNvbk9iamVjdC0+
c2V0T2JqZWN0KFN0cmluZyB7IGtleSB9LCB0b0pTT05PYmplY3QodmFsdWUpKTsKKyAgICAgICAg
ICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgdG9KU09O
T2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVf
ZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfU1RSSU5HKSkKLSAgICAgICAgICAgIGpzb25PYmpl
Y3QtPnNldFN0cmluZyhTdHJpbmcgeyBrZXkgfSwgU3RyaW5nIHsgZ192YXJpYW50X2dldF9zdHJp
bmcodmFsdWUsIG51bGxwdHIpIH0pOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5n
KFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBTdHJpbmc6OmZyb21MYXRpbjEoZ192YXJpYW50X2dl
dF9zdHJpbmcodmFsdWUsIG51bGxwdHIpKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192
YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfRE9VQkxFKSkKLSAgICAgICAg
ICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmcgeyBrZXkgfSwgZ192YXJpYW50X2dldF9k
b3VibGUodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmc6
OmZyb21MYXRpbjEoa2V5KSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKICAgICB9CiAg
ICAgcmV0dXJuIGpzb25PYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJL
aXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAK
aW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcy
MjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9s
bGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rl
ci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsK
IAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVs
bFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJ
bXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcg
YW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07
CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwo
KTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBh
bjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5n
SW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJp
bmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7
Cg==
</data>
<flag name="commit-queue"
          id="485697"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457183</attachid>
            <date>2022-04-09 15:33:01 -0700</date>
            <delta_ts>2022-04-09 18:13:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409153300.patch</filename>
            <type>text/plain</type>
            <size>222890</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBmM2EyNzIzYzEyODMwZDJkMDkuLjE1
YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNlckNvbnRlbnRNYW5hZ2VyRGVzdHJv
eWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZy
b21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAg
ICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9MSUNZX0VSUk9SLCBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBzaG93IGluc3BlY3RvciBVUkw6IG5v
IHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBi
OTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRm
YzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xv
ci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2Vi
S2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
clN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsK
KyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldp
dGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICgh
d2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2Jk
MGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdv
cmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0
b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVu
dGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0
aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3Ry
aW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1m
ZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xp
ZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdw
ZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9w
dCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0g
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9h
ZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9
IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDgg
KzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFw
cCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBs
aWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJp
bmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0
aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmlu
c3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVj
dG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCmluZGV4IDgx
NzFlZjYyY2M3N2MwYjExMmZkZTYxYzkzNmNmM2IwZGZkN2E1ZjYuLmEzODkyNjVkMmZmOGJjYjk1
ZGRlOWI5NDE1YjA1OTE5NWVmNGNkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCkBA
IC04NCwxNCArODQsMTQgQEAgc3RhdGljIGJvb2wgaXNFR0xJbWFnZUF2YWlsYWJsZShib29sIHVz
ZUluZGV4ZWRHZXRTdHJpbmcpCiAgICAgICAgIEdMaW50IG51bUV4dGVuc2lvbnMgPSAwOwogICAg
ICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTlVNX0VYVEVOU0lPTlMsICZudW1FeHRlbnNpb25zKTsK
ICAgICAgICAgZm9yIChHTGludCBpID0gMDsgaSA8IG51bUV4dGVuc2lvbnM7ICsraSkgewotICAg
ICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKTsKKyAgICAgICAgICAgIFN0
cmluZyBleHRlbnNpb24gPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSk7CiAgICAgICAgICAgICBp
ZiAoZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8fCBleHRlbnNpb24gPT0gIkdMX09F
U19FR0xfaW1hZ2VfZXh0ZXJuYWwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFN0cmluZyBleHRlbnNp
b25zU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0
U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGZvciAoYXV0byYgZXh0ZW5zaW9uIDog
ZXh0ZW5zaW9uc1N0cmluZy5zcGxpdCgnICcpKSB7CiAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9u
ID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8fCBleHRlbnNpb24gPT0gIkdMX09FU19FR0xfaW1hZ2Vf
ZXh0ZXJuYWwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaAppbmRleCBmZTA0YzFm
ZjQ0MTYxYzA3NmY1MzdkYTUxM2NjMmQ3MTVjYTkwMDNlLi5iZTliYTRjNjA5MjBiNGY3ODhhMmFi
YzU5MDhkNmRmYWMwNDhmMTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICBWZWN0b3I8U3RyaW5nPiBjb21tYW5kc0ZvcktleXZhbCh1bnNpZ25lZCBrZXl2YWws
IHVuc2lnbmVkIG1vZGlmaWVycyk7CiAKLSAgICB2b2lkIGFkZFBlbmRpbmdFZGl0b3JDb21tYW5k
KGNvbnN0IGNoYXIqIGNvbW1hbmQpIHsgbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMuYXBwZW5kKGNv
bW1hbmQpOyB9CisgICAgdm9pZCBhZGRQZW5kaW5nRWRpdG9yQ29tbWFuZChjb25zdCBjaGFyKiBj
b21tYW5kKSB7IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmFwcGVuZChTdHJpbmc6OmZyb21MYXRp
bjEoY29tbWFuZCkpOyB9CiAKIHByaXZhdGU6CiAgICAgR3RrV2lkZ2V0KiBtX25hdGl2ZVdpZGdl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93
cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAppbmRleCAzMzg0ZmEyNThjMjBm
NDQ2ZjIxMmRhZTJjMjRkYzlkODEyMmJhZDAxLi43NmU2Y2VmZTkwZGMwMGJlMzg0YjM1N2ZkNjE5
MWU2ZGVhZmE0MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCkBAIC0x
NjgsNyArMTY4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0
IEtleWJvYXJkRXZlbnQmIGV2ZW50KQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhGcmFt
ZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQmIHBsYXRmb3JtRXZlbnQpCiB7Ci0gICAgU3RyaW5nIGNvbW1hbmROYW1lIHsgaW50ZXJwcmV0
S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFtZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogCiAgICAgaWYgKCFjb21tYW5kTmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSku
ZXhlY3V0ZSgpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUtleVByZXNz
KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBl
dmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKIHsKLSAgICBTdHJpbmcgY29tbWFu
ZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRvIGNvbW1hbmROYW1l
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7CiAgICAgaWYg
KGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKaW5kZXggNzY0
NDNhOTQyNTRhZTRmZThlNThmODA3YmFhNTIxNTZjMzY3ZDExZC4uYzc3ZmY3OGNkM2NkOTYyN2Qx
YWU3YjkzMGM4MTQ1NzA5NDY0NTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wg
V2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNv
bW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRvIGNv
bW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJw
cmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxh
dGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZl
IGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKaW5kZXggYTIxNjNmZDA5MmI0NTQz
Y2FhNWE1MjA5MWRiMGExMzMzMTFlYzY4NC4uMzVjMjg5N2FjODg3M2IxNzQzMWY5ZWQ1NjdiMjFj
OTliZmIyM2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJs
ZVRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4
dEltcGwuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6c2V0
QXR0cmlidXRlcyhsb25nIHN0YXJ0T2Zmc2V0LCBsb25nIGVuZE9mZnNldCwgQlNUUiogYXQKIC8v
IElBY2Nlc3NpYmxlMgogSFJFU1VMVCBBY2Nlc3NpYmxlVGV4dDo6Z2V0X2F0dHJpYnV0ZXMoQlNU
UiogYXR0cmlidXRlcykKIHsKLSAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1vZGVsOmExIik7
CisgICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSJfcyk7CiAgICAgKmF0dHJpYnV0
ZXMgPSBCU3RyaW5nKHRleHQpLnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRleCBmMTMxNmRl
NDZjMjEzNWE2ZDI2ZmFiOWQxNDRkZWIzZjgxZjA4OTM4Li4wMWE2MTJmZGEzMjg5ZDk2N2NhOTY3
MmNjNDIzZTFkMzVkYTU1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN0YXRpc3RpY3MuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgSFJFU1VMVCBXZWJDb3JlU3RhdGlz
dGljczo6amF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMoX0NPTV9PdXRwdHJfb3B0
XwogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5lbmQoKTsKICAgICBIYXNo
TWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7CiAgICAgZm9yIChJdGVyYXRvciBjdXJyZW50
ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQp
Ci0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nIHsgY3VycmVudC0+a2V5IH0sIGN1cnJl
bnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmc6OmZyb21MYXRpbjEo
Y3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUpOwogCiAgICAgQ09NUHRyPElQcm9wZXJ0eUJh
ZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPGludD46OmNyZWF0ZUluc3RhbmNl
KHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMuY29weVJlZlRvKHR5cGVOYW1lc0FuZENvdW50
cyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgSFJFU1VMVCBXZWJDb3JlU3RhdGlzdGljczo6amF2YVNj
cmlwdE9iamVjdFR5cGVDb3VudHMoX0NPTV9PdXRwdHJfb3B0XyBJUHJvcGVydHkKICAgICBJdGVy
YXRvciBlbmQgPSBqc09iamVjdFR5cGVOYW1lcy0+ZW5kKCk7CiAgICAgSGFzaE1hcDxTdHJpbmcs
IGludD4gdHlwZUNvdW50TWFwOwogICAgIGZvciAoSXRlcmF0b3IgY3VycmVudCA9IGpzT2JqZWN0
VHlwZU5hbWVzLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50KQotICAgICAgICB0
eXBlQ291bnRNYXAuc2V0KFN0cmluZyB7IGN1cnJlbnQtPmtleSB9LCBjdXJyZW50LT52YWx1ZSk7
CisgICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGN1cnJlbnQtPmtl
eSksIGN1cnJlbnQtPnZhbHVlKTsKIAogICAgIENPTVB0cjxJUHJvcGVydHlCYWcyPiByZXN1bHRz
KEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxpbnQ+OjpjcmVhdGVJbnN0YW5jZSh0eXBlQ291bnRN
YXApKTsKICAgICByZXN1bHRzLmNvcHlSZWZUbyh0eXBlTmFtZXNBbmRDb3VudHMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKaW5kZXggMWM3YWZkMDUzMWE5MmYzMjdjMzM2YjY1ZjNhMTJlMDkzMmE2OGZk
Ni4uYjIzOTM3NjI0MGRjOWQyMzAxZmU1YzU5NGI3MTc0NGRlNmUyMjVmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCkBAIC00NTQsNyArNDU0LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRvVGV4
dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiBlLCBLZXlib2FyZEV2ZW50KiBrZSkKICAg
ICAgICAgaWYgKGRvbUVsZW1lbnQpIHsKICAgICAgICAgICAgIElET01IVE1MSW5wdXRFbGVtZW50
KiBkb21JbnB1dEVsZW1lbnQ7CiAgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGRvbUVsZW1lbnQt
PlF1ZXJ5SW50ZXJmYWNlKElJRF9JRE9NSFRNTElucHV0RWxlbWVudCwgKHZvaWQqKikmZG9tSW5w
dXRFbGVtZW50KSkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgY29tbWFuZCB7IG1fd2ViVmll
dy0+aW50ZXJwcmV0S2V5RXZlbnQoa2UpIH07CisgICAgICAgICAgICAgICAgYXV0byBjb21tYW5k
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKG1fd2ViVmlldy0+aW50ZXJwcmV0S2V5RXZlbnQoa2UpKTsK
ICAgICAgICAgICAgICAgICAvLyBXZSBhbGxvdyBlbXB0eSBjb21tYW5kcyBoZXJlIGJlY2F1c2Ug
dGhlIGFwcCBjb2RlIGFjdHVhbGx5IGRlcGVuZHMgb24gdGhpcyBiZWluZyBjYWxsZWQgZm9yIGFs
bCBrZXkgcHJlc3Nlcy4KICAgICAgICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byByZXZpc2l0
IHRoaXMgbGF0ZXIgYmVjYXVzZSBpdCBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlIHRvIHNlbmQg
YW4gZW1wdHkgY29tbWFuZC4KICAgICAgICAgICAgICAgICBmb3JtRGVsZWdhdGUtPmRvUGxhdGZv
cm1Db21tYW5kKGRvbUlucHV0RWxlbWVudCwgQlN0cmluZyhjb21tYW5kKSwga2l0KGUtPmRvY3Vt
ZW50KCkuZnJhbWUoKSksICZyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IGZhOTUzNzI3MmY3MjZmZWQzM2M3YmYyMmVhM2ViMzg4YzM5NGNkMTEuLjdjZTIwNzEyMGNk
NmY3NmUwZGI3MGZkZWE0MGUxODMzY2I1NmVkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTc1MCw3ICs3NTAsNyBAQCBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogewogICAg
IC8vIEZJWE1FOiBOZWVkIENoaWNrZW5DYXQgdG8gaW5jbHVkZSBDRk5ldHdvcmsvQ0ZVUkxFcnJv
ci5oIHRvIGdldCB0aGVzZSB2YWx1ZXMKICAgICAvLyBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBj
cmVhdGUgb3VyIG93biBlcnJvciBkb21haW4vY29kZXMuCi0gICAgcmV0dXJuIFJlc291cmNlRXJy
b3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5n
KCJDYW5jZWxsZWQiKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVy
cm9yRG9tYWluKSwgLTk5OSwgcmVxdWVzdC51cmwoKSwgU3RyaW5nKCJDYW5jZWxsZWQiX3MpKTsK
IH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6YmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKQEAgLTc4MCw3ICs3ODAsNyBAQCBS
ZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbgogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9y
RG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhp
c3QuIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFp
biksIC0xMTAwLCByZXNwb25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0LiJf
cykpOwogfQogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxs
SGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3ZjUyMWRhMGZkYTI0YTU3NDA2ODBh
MjQzNzliODJjYjI0MDM0MzM4Li43NzI0ZmIwMDJhMWFhMjgwMzZiMmYwZmIyY2QwNGQ2MjFiMzUx
ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMjE0Nyw3ICsyMTQ3LDcg
QEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZl
bnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29t
bWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29t
bWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnBy
ZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUg
ZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0aGF0
IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUgdHJlYXRl
ZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJh
c2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwCmluZGV4IDAwMDVkMDEwZDM1YmM2YzU4YzE4NjlkMTFhYzcxODJmMmM4
Y2U3MmEuLmU3Zjk1MDY1NWI0MjQ4NjE0NDA1NmNlODM0OGY1OTUwOWY1NmRlNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmNwcApAQCAtNDcsNSArNDcsNSBAQCBTdHJpbmcgV2ViRGF0YWJhc2VQcm92aWRlcjo6aW5k
ZXhlZERhdGFiYXNlRGlyZWN0b3J5UGF0aCgpCiAgICAgICAgICYmIDo6R2V0TGFzdEVycm9yKCkg
IT0gRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwog
Ci0gICAgcmV0dXJuIFN0cmluZyhkYXRhYmFzZURpcmVjdG9yeSk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbUxhdGluMShkYXRhYmFzZURpcmVjdG9yeSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyMTMzMTVmYjdiYjdhNWQ4NjRjYTgy
OWI5MzNiMTA1NzczNWNjYy4uMzQ4ZDg1YWI5NmRiYmFmZjFiNGQ2YzczOTBhMTMzZWYyMDhiYTA5
NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY1IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGlu
MSgpIGFuZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Dcm9zc1RocmVhZENvcGllci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGV4TnVtYmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3Iu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHA6CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNo
RGF0YWJhc2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0
YWJhc2VUcmFja2VyVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOgorICAg
ICAgICAodGVzdElkZW50aXR5Mik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2ln
blVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29u
dGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW06CisgICAgICAg
ICgtW1dlYktpdDFUZXN0RGVsZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdp
dGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29ubmVjdGlvbjo6
d2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6
OnRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0
ZXN0UHJpdmF0ZUtleSk6CisKIDIwMjItMDQtMDggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQ3JlYXRlIHNlcGVyYXRlIHF1ZXVl
IGZvciB1bnNhZmUgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggZTE5NjY4Y2NkNzQ5YmJlOWE2ODhlMDY4NDM3MDg4ZmQzNjU4YWY4Ni4u
YzhlODMwMmJmMjk3YTMxMTRkZTIwM2MzNWIxMjM5ZjEyNTMwZDE3MiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTc1LDEwICsxMTc1LDEwIEBA
IHN0YXRpYyBib29sIGhhbmRsZUNvbnRyb2xDb21tYW5kKGNvbnN0IGNoYXIqIGNvbW1hbmQpCiB7
CiAgICAgaWYgKCFzdHJjbXAoIiNDSEVDSyBGT1IgQUJBTkRPTkVEIERPQ1VNRU5UUyIsIGNvbW1h
bmQpKSB7CiAgICAgICAgIC8vIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IHN1cHBvcnQgY2hlY2tp
bmcgZm9yIGFiYW5kb25kZWQgZG9jdW1lbnRzLgotICAgICAgICBTdHJpbmcgcmVzdWx0KCJcbiIp
OworICAgICAgICBDU3RyaW5nIHJlc3VsdCgiXG4iKTsKICAgICAgICAgcHJpbnRmKCJDb250ZW50
LVR5cGU6IHRleHQvcGxhaW5cbiIpOwogICAgICAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3RoOiAl
dVxuIiwgcmVzdWx0Lmxlbmd0aCgpKTsKLSAgICAgICAgZndyaXRlKHJlc3VsdC51dGY4KCkuZGF0
YSgpLCAxLCByZXN1bHQubGVuZ3RoKCksIHN0ZG91dCk7CisgICAgICAgIGZ3cml0ZShyZXN1bHQu
ZGF0YSgpLCAxLCByZXN1bHQubGVuZ3RoKCksIHN0ZG91dCk7CiAgICAgICAgIHByaW50ZigiI0VP
RlxuIik7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiI0VPRlxuIik7CiAgICAgICAgIGZmbHVz
aChzdGRvdXQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jv
c3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEw
NGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGViYWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5h
bC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFz
T25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
Q29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5n
KQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUo
b3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwoKSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBT
dHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVh
ZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCkt
PnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1JlZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRD
b3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFs
KTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAg
RVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBA
IFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVT
VChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAg
LTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFs
U3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJp
bmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0
cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmln
aW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5h
bCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2Ni
YjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAyNjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3
NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVT
eXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUpCiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAg
IEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4
aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vz
cyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5n
KCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFy
ZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxTRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJV
RSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hl
eE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNh
OC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAg
VEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNl
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
YSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAz
LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAg
ICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIp
KTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJG
QUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4
MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBj
aGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBi
dWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlkYjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4u
YTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2Mywy
NSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5h
cHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsg
Ly8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7
CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEu
YXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkp
OwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0
ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFla
IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZn
IzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVpbGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5
ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0
ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0
cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5j
X3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9t
TGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQpCiB7CiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4
OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVy
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdl
Jyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5
ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAi
YWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5n
KCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAg
ICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0
IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRl
ci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxz
ZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVy
ZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1
dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNpdHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3Qg
bmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAi
Iik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1
aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwogICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5j
YXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXll
LCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAgLTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWls
ZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAg
IEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAog
ICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmlu
Zyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVj
dCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkg
aXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5n
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAg
ICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
IiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyks
IGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBS
ZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwg
cmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
ICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVu
c2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcg
PSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBh
Y2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0
cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5n
QnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5n
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2Fw
YWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsK
QEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJD
Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkg
PSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5j
YXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsK
ICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwog
CiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBh
Y2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmlu
Z0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIu
c2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVh
cikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkK
ICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEw
KTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluayg4KTsKICAg
ICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRl
ci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLnNocmluaygwKTsK
ICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0KQEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAgIEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIx
LCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
PT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJV
RShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykpOwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIx
MjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFw
cGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBF
Q1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEg
PT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWls
ZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgPT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRl
cjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7
CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVF
KFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9
IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWls
ZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAg
ICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9tU3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9t
U3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIx
MjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0
cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9U
UlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdh
MWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUzNWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00
NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3RyaW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FT
Q0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYsIFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5n
IHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAg
ICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgiKSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRf
VFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7
CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0
eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRm
YjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJlMTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBj
N2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogewotICAgIFN0cmlu
ZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAg
QXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3RyaW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxp
dGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAKLSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tp
bmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3Ry
aW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNr
aW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3RmU3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGEx
NzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4uYmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlh
M2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRo
RW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmlldyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3
IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVs
bG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFy
YWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZpZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRo
KG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlW
c051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUNDRUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZp
ZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dp
dGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3MpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dp
dGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0
ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmll
d0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5n
Vmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFy
ZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7
IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxvIik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8i
X3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXcoaGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2lu
dHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYs
IFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3Is
ICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBF
Q1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wnKTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJr
aXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29k
ZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5jb2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50
c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5iZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0
ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExl
YWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmll
d0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxv
IikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNv
Y29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5n
KCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3
KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSku
aXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNl
X2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikpKS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAppbmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4
ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2
NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwx
NiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3RydWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNU
X1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAgRVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9
PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIp
LCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhh
bXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSgh
IWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2VyKCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3VybC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwucXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
cGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9p
bmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4
Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkpOwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Iiks
IGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdt
ZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3Jl
YXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmluZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0
aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VS
TCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsKICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6
QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8v
dXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZp
bGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJM
KCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxl
Oi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNl
cm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2Zy
YWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJMRGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0z
NjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVy
cykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVSTCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAg
ICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3Ix
Mik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcgKzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwg
VVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9
fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0
IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RWZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVy
bDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAg
ICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5
MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRp
ZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAK
ICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12
YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwg
eyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywg
InZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwogICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwx
NiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJr
ZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3Mg
fSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVy
eVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVzdFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVS
TCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5
MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMi
LCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJs
MTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAgICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1
cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
NzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsi
a2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJf
cyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0
VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVybDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwg
dXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEi
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0s
IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIi
X3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsK
ICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Py8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIv
P3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEsIHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwog
ICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89
dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0s
IHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3RvcjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwy
NyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwy
OCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3si
Lz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3MjggeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0s
IHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJs
MzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0s
IHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRl
c3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwgdXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJMIHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVz
dFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJMIHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRl
c3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5j
cHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJhOTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIy
M2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUsOSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9y
LCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVjdG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEi
IH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmlu
ZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIg
fSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJfcyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2
MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9
IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAt
PiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFpci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmluZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1
YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBiNzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZi
MWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAt
NDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAg
IEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5n
RnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBj
b25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQ
RUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0
ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rp
b24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcg
c3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExpdGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEo
c3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAg
ICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIsIHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBF
WFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwgc3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBU
RVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdT
dGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3Ry
aW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMo
ImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0
c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJz
LnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwg
U3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAg
IHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3Vs
dCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJl
c3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQog
CiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhMaXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEg
QEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQogICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3Ry
aW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVD
VF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0
cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJf
cykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJp
bmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAg
RVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFpbCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0g
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngx
Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3Vj
Y2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGlnbm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0
dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5j
eSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3VhcmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0
dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJldHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmco
IjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50
b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25s
eSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3Vj
aCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgp
KTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4
U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1Rf
VFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJz
dCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5m
aXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3Qi
X3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAK
ICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwog
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0z
NDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogICAg
IEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5n
QXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi
5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70i
KS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0i
KSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJ
bmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVz
dCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9
CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEo
IlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJh
bCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9G
QUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgpKTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFz
aCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAK
IFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxVQ2hhckFycmF5KQogewotICAgIFN0cmluZyBz
dHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQo
KSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAnYicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZl
NWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0
NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzky
LDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAg
dGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRl
clBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAogICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0g
PSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0s
IENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJ
SSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJ
KTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpV
UkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBh
dHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUy
ZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERh
dGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0
YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0
IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMg
aXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlz
IGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3Ig
dGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9uaXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5
NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVh
ZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJz
ZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAgICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAg
ICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlD
b21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9
LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAg
IFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZy
b21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpm
cm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAg
IHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxk
LCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9zLAogICAgICAgICAiYTogXCJcYVwiIl9zLAog
ICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9zLAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1
b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShkZWxJblF1b3RlKSwKICAgICB9KTsK
ICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5kZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2Rl
NjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgz
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0RG91
YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNU
X1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmlu
ZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIp
KSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29k
ZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBT
dHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVTVChLZXllZENvZGluZywgR2V0Tm9uRXhpc3Rp
bmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHVibGljU3VmZml4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwCmluZGV4IGE3ZmE0NDMyY2E3OGRhZGZhYTI3MTEwODVkNTQ5NWUzOWMxY2Q5
NGQuLjBhYzkwNGRkMGUzMWQ1M2UyOGRhMDZhM2RmY2JjYTQ1ZGZjYmU5OTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCkBAIC0x
NTcsMzAgKzE1NywzMCBAQCBURVNUX0YoUHVibGljU3VmZml4LCBUb3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKQogICAgIEVYUEVDVF9FUShTdHJpbmcodXRmMTZTdHJpbmcodSJleGFtcGxlLlx1
NjgwM1x1NjcyOC5qcCIpKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbih1dGYxNlN0cmlu
Zyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oU3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIiJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWlu
LnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5j
by51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51
ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInN1YmRvbWFpbi5ibC51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0t
emYwYW82NGEudHciKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVz
dC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9t
YWluLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiY29tLmNvbSJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29tIl9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InRlc3QuY28udWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLnRlc3QuY28udWsiX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIxMjcuMC4wLjEiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEi
X3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oIjEiX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oImNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigicjQtLS1hc2RmLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLnRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEo
U3RyaW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZiJfcykpOwog
ICAgIEVYUEVDVF9FUSh1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSwgdXRmMTZTdHJp
bmcoYmlkaXJlY3Rpb25hbERvbWFpbikpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUuY29tIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3Qi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw6XD
pMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOlw6TDtiJfcykpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLD
hcOEw5YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkV4YW1QbGUu
Y29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigibG9jYWxob3N0Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Il9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiTG9jYWxIb3N0Il9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw6XDpMO2IiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIsOlw6TDtiJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEo
IsOFw4TDliIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDhcOEw5YiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIi50ZXN0LmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLi4uLiJfcykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3BwCmluZGV4IDcxZWZlYWNjZmI4
N2NkZmE5YTM2OGY4YjgzODczYjRlNWEzYWJmZDMuLmE2MjQwYTM1MzBmMTRjZTkyNTVlMjQ0OGJh
NzczMTA1NDFkODMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9QdXNoRGF0YWJhc2UuY3BwCkBAIC00MzIsOCArNDMyLDggQEAgVEVTVChQdXNoRGF0YWJh
c2UsIE1hbnlJbkZsaWdodE9wcykKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJl
Y29yZENvdW50OyBpKyspIHsKICAgICAgICAgICAgIHNucHJpbnRmKHNjb3BlLCBzaXplb2Yoc2Nv
cGUpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnL3Rlc3QvJWQiLCBpKTsKICAgICAgICAgICAgIHNu
cHJpbnRmKHRvcGljLCBzaXplb2YodG9waWMpLCAidG9waWNfJWQiLCBpKTsKLSAgICAgICAgICAg
IHJlY29yZC5zY29wZSA9IFN0cmluZyB7IHNjb3BlIH07Ci0gICAgICAgICAgICByZWNvcmQudG9w
aWMgPSBTdHJpbmcgeyB0b3BpYyB9OworICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHNjb3BlKTsKKyAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZzo6
ZnJvbUxhdGluMSh0b3BpYyk7CiAKICAgICAgICAgICAgIGRhdGFiYXNlLmluc2VydFJlY29yZChy
ZWNvcmQsIFtdKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShy
ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1No
YXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVk
QnVmZmVyLmNwcAppbmRleCAwN2E0NWUwZWY0MTRiZjc0OTcxMjkyZmMxY2MyYWE4NzQ4YWRkNTE1
Li4xYjFkOWZmMGZlODE2Mjk3YmFlYjBmNmRhM2M4NWViNWNmZjNiZTMwIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtNDMs
NyArNDMsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1RfRihGcmFnbWVudGVk
U2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKLSAg
ICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9z
KSk7CiAgICAgQVNTRVJUX05VTEwoYnVmZmVyKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBURVNU
X0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3Rp
bmdGaWxlKQogICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVu
dHNPZkZpbGUodGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwog
ICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZyhGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgPT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNv
bnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKFN0
cmluZzo6ZnJvbUxhdGluMShGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkg
PT0gU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUo
KSkpOwogfQogCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhD
b250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCmluZGV4IGRj
NGUxMjgwODkwMmY1MGQxZTk5Yzg2NjhiNGMxNTJjMmRkYTlkNzMuLjRkMjdmNGZkNGI1NTIyODc0
M2QzZTJmN2NjOTdmYmM0M2Y0NGE4ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwCkBAIC0xMzks
NyArMTM5LDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rp
bmcpCiB7CiAgICAgY2hlY2tVUkwodXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdD/Dn/CfmI0jw5/w
n5iNIiksIG51bGxwdHIsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCAiJUMzJTlGJUYwJTlGJTk4JThEIl9zLCAiJUMzJTlGJUYwJTlG
JTk4JThEIl9zLCB1dGYxNlN0cmluZyh1Imh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQj
JUMzJTlGJUYwJTlGJTk4JThEIil9LCB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMpOwog
Ci0gICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKFN0cmluZygibGF0aW4xIikpOworICAgIFBB
TDo6VGV4dEVuY29kaW5nIGxhdGluMSgibGF0aW4xIik7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9o
b3N0Lz9xdWVyeSB3aXRoJTIwc3BhY2VzIl9zLCAmbGF0aW4xLCB7Imh0dHAiX3MsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1ZXJ5JTIwd2l0aCUy
MHNwYWNlcyJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSUyMHdpdGglMjBz
cGFjZXMiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAmbGF0aW4x
LCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
LyJfcywgInF1ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7
CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9cdHF1ZXJ5Il9zLCAmbGF0aW4xLCB7Imh0dHAi
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgInF1
ZXJ5Il9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zfSk7CkBAIC0xNTEs
NyArMTUxLDcgQEAgVEVTVF9GKFVSTFBhcnNlclRleHRFbmNvZGluZ1Rlc3QsIFF1ZXJ5RW5jb2Rp
bmcpCiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJnVucmVjb2duaXplZCwg
eyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8i
X3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7CiAg
ICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz8iX3MsICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwogCi0gICAgUEFMOjpU
ZXh0RW5jb2RpbmcgaXNvODg1OTEoU3RyaW5nKCJJU08tODg1OS0xIikpOworICAgIFBBTDo6VGV4
dEVuY29kaW5nIGlzbzg4NTkxKCJJU08tODg1OS0xIik7CiAgICAgU3RyaW5nIHdpdGhVbWxhdXRz
ID0gdXRmMTZTdHJpbmc8ND4oezB4REMsIDB4NDMwLCAweDQ1MSwgJ1wwJ30pOwogICAgIGNoZWNr
VVJMKG1ha2VTdHJpbmcoIndzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkx
LCB7IndzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9w
YXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3M6Ly9ob3N0
L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygi
d3NzOi8vaG9zdC9wYXRoPyIsIHdpdGhVbWxhdXRzKSwgJmlzbzg4NTkxLCB7IndzcyJfcywgZW1w
dHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5
QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzczovL2hvc3QvcGF0aD8lQzMlOUMl
RDAlQjAlRDElOTEiX3N9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAKaW5kZXggMmRkN2U0YWU3YTAxYzI5ZWYxNGJlODlm
ZWRhYjI4NWQ5NzZmOTgwMy4uMWE1YjVkNmFkOGRkMTc1ODk2ODk5NDRiZGJjOTQ2MzY4MzdlODE2
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2Vu
dFF1aXJrcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJB
Z2VudFF1aXJrcy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNDaHJvbWVCcm93c2VyUXVp
cmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNl
ckFnZW50Rm9yVVJMKFVSTCggU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcg
PSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsK
IAogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQ
RUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIlNhZmFyaSIpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzQ2hyb21lQnJvd3NlclF1aXJrKGNv
bnN0IGNoYXIqIHVybCkKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRmly
ZWZveEJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5n
ID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3Ry
aW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxh
dGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuY29udGFpbnMoIkNocm9t
ZSIpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuY29udGFpbnMoIlNhZmFyaSIpKTsKQEAg
LTU2LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRmlyZWZv
eEJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJB
Z2VudEZvclVSTEhhc01hY1BsYXRmb3JtUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0
cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwg
fSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChT
dHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29u
dGFpbnMoIk1hY2ludG9zaCIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygi
TWFjIE9TIFgiKSk7CkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2Vu
dEZvclVSTEhhc01hY1BsYXRmb3JtUXVpcmsoY29uc3QgY2hhciogdXJsKQogLy8gdGhhdCB0aGUg
c3RhbmRhcmQgdXNlciBhZ2VudCBzaG91bGQgYmUgdXNlZC4pCiBzdGF0aWMgdm9pZCBhc3NlcnRV
c2VyQWdlbnRGb3JVUkxIYXNFbXB0eVF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJp
bmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJsIH0p
KTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3Ry
aW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKICAgICBFWFBFQ1RfRkFMU0UodWFTdHJpbmcuaXNOdWxs
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCmluZGV4IDc1MzI4MTg0YzRjZTRm
MThlYjA1ZjYxZDM1NjkwMzNjMGQ2OWQyNzAuLjdmYzdlZjQxOTRiMDY1MWU3MmFmYTBhNGVkMjE2
OTFlODU0ZmRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tCkBAIC05OSw3ICs5OSw3
IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW4pCiAgICAgLy8gSW4gdGhpcyBj
YXNlLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBvcmlnaW4ncyBpbmZvcm1hdGlvbiBmcm9tIGJvdGgg
dGhlIE9yaWdpbnMKICAgICAvLyBhbmQgRGF0YWJhc2VzIHRhYmxlcywgYW5kIHJlbW92ZSB0aGUg
ZGF0YWJhc2UgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxl
U3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBT
dHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0
NDMpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmln
aW5XaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gYnV0IG5vdCBhbiBhY3R1YWwgZGF0
YWJhc2Ugb24gZGlzay4KICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJl
bW92ZWQgZnJvbSB0aGUgdGFibGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAg
ICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9z
LCA0NDMpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVP
cmlnaW5XaGVuRGVsZXRpbmdBRGF0YWJhc2VGYWlscykKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdl
IHNob3VsZG4ndCByZW1vdmUgdGhlIGluZm9ybWF0aW9uIGZyb20gZWl0aGVyIHRoZSBEYXRhYmFz
ZXMgb3IKICAgICAvLyBPcmlnaW5zIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0
b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0g
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmlu
Zyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9y
eVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0
Lm9yZyJfcywgNDQzKTsKQEAgLTIzNCw3ICsyMzQsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwg
RGVsZXRlT3JpZ2luV2l0aE1pc3NpbmdFbnRyeUluRGF0YWJhc2VzVGFibGUpCiAgICAgLy8gVGhl
IGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIE9yaWdpbnMgdGFi
bGUsIGFuZCB0aGUKICAgICAvLyBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIGRpc2su
CiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBv
cmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBh
dGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFz
ZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhE
YXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yNzIsNyArMjcy
LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlKQogICAgIC8vIGFuZCBh
IGRhdGFiYXNlIG9uIGRpc2suIEFmdGVyIHRoZSBkZWxldGlvbiwgdGhlIGRhdGFiYXNlIHNob3Vs
ZCBiZSBkZWxldGVkCiAgICAgLy8gZnJvbSBkaXNrLCBhbmQgdGhlIGluZm9ybWF0aW9uIHNob3Vs
ZCBiZSBnb25lIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBURVNUKERhdGFiYXNlVHJh
Y2tlciwgRGVsZXRlRGF0YWJhc2VXaGVuRGF0YWJhc2VEb2VzTm90RXhpc3QpCiAgICAgLy8gVGVz
dCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gZGVsZXRlIGEgZGF0YWJhc2UgdGhhdCBkb2Vzbid0
IGV4aXN0IG9uIGRpc2suCiAgICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSB0aGUgZGF0YWJh
c2UgaW5mb3JtYXRpb24gZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3
ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJX
ZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9y
eS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERp
cmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFz
ZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMi
X3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCAxMWI5ZDY4NjU0M2ZmMzBhMWI2ZWQ0
MGI3YTE1MDAyNDQyZGMxMDJmLi5lYTc0YTMwNmI3ODYwNTNmMmFjMDNiNWFkMDcxZTQ2YWViZDkx
MDJmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbQpAQCAtMTQxLDcgKzE0MSw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4g
dGVzdElkZW50aXR5MigpCiAgICAgIm1pSzFUWHRMbFdOMDZyNDNhblFxWnlSYnU1SW9IbUhBeWJw
azRTdHEyOXdPU0JvWmR5YXJRV2tsb3lpWUpLZFgiCiAgICAgIm9EZGtLRjhjd29CZUFlaVJMa1Q0
NXN0Uk5rbEJnNFZsZ0NGRUxQT2NXWU1GT29Ta1FnMTlWUy9WYUhpNDh0K3oiCiAgICAgIjY2OEJu
MVUzVTlkL2lOQ1hGTTc4aUtxb0pDQm9VUnlpcm1HL3RJNmdmSmlMbjA1VHo2bll6MzFZNDBGbTFT
d2ciCi0gICAgImhnT3kvVGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Iik7CisgICAgImhnT3kv
VGRKTy9Oam1USEJncElUUDZsdjY5UXZhVjl6Il9zKTsKIAogICAgIFN0cmluZyBwZW1FbmNvZGVk
Q2VydGlmaWNhdGUoIiIKICAgICAiTUlJRmdEQ0NBMmdDQ1FEK1FZMUpSbk0zSWpBTkJna3Foa2lH
OXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVFQmhNQyIKQEAgLTE3Myw3ICsxNzMsNyBAQCBSZXRhaW5Q
dHI8U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICI0Nml6aG91M0dTS3ozWDFl
WXBZYlpIRjUyZHhtT1VkdnBTb3FmbWxNRjFFZ3Y5NGNyRDF4aDlhc2RqZzJEblhjIgogICAgICI5
NDhZeFBhRmpvT0dkNlluYytmdjlwSnpqVGp4aW1iSWlXbTJyNnl0Mmo5aEF1S0pYcE5PSWE0b0lN
QUlHakNpIgogICAgICJKQUgybnhLR3VxdEFLMmhXYkFDdTYxUlQ1Z0FxQXYvaEI5SlluYzJPaVEy
Vm1qWWtPazJHRWRJam4weFNnWDdXIgotICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9
Iik7CisgICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iX3MpOwogCiAgICAgYXV0byBw
cml2YXRlS2V5Qnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAg
IGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNh
dGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
dmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IDZjM2NhM2Q1MjQ4MGM5NDgxNzg3Y2IzYjEwZWY5
OWNhYTNlODUzOGMuLjZhZjRlODhhODAyZTlhNTM0YjY4OGY1M2FlNjgwZDZjMTVjODVlNDcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2
ZW50QXR0cmlidXRpb24ubW0KQEAgLTI4Miw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5s
aW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQ
YXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoc3RybnN0cihyZXF1ZXN0
Mi5kYXRhKCksICJQT1NUIC8gSFRUUC8xLjFcclxuIiwgcmVxdWVzdDIuc2l6ZSgpKSk7CiAKICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDJTdHJpbmcgPSBTdHJpbmcocmVxdWVz
dDIuZGF0YSgpLCByZXF1ZXN0Mi5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmlu
Zygic291cmNlX3VubGlua2FibGVfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5r
YWJsZV90b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5n
UGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3VubGlu
a2FibGVfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIl9z
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0MlN0cmluZy5m
aW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkg
KyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0MlN0cmluZy5m
aW5kKCciJywgc3RhcnQpOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25Vbmxp
bmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1Bh
cnR5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVl
c3Q0U3RyaW5nID0gU3RyaW5nKHJlcXVlc3Q0LmRhdGEoKSwgcmVxdWVzdDQuc2l6ZSgpKTsKIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmlu
Z1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNy
ZXRfdG9rZW4iKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkg
PT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tl
biJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiJfcyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5n
LmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy
dCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMy
OCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3Jl
dFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUo
dG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9r
ZW5EYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rv
ci0+ZGF0YSgpIGxlbmd0aDp0b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWdu
aW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUi
KSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3Np
Z25hdHVyZSJfcykgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUi
X3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcmVx
dWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW5kID0gcmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IDViY2VhODEwOTNjZmVlNWY4ODJm
ZjY5NmY1ODZmOTI2OTg3OGJkMTMuLmRiZTgwMDg4N2M5YmM0NjRlM2U1ZTk1NDU0NDlhOTM5Mjdm
YzRiMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNzM4OSwyMyArNzM4
OSwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlck5hdmlnYXRpbmdBd2F5
RnJvbUNPT1ApCiAKIGVudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsK
IGVudW0gY2xhc3MgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Owotc3Rh
dGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBj
b25zdCBjaGFyKiBzb3VyY2VDT0VQLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPT1AsIGNvbnN0
IGNoYXIqIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dh
cCkKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoQVNDSUlMaXRlcmFsIHNvdXJj
ZUNPT1AsIEFTQ0lJTGl0ZXJhbCBzb3VyY2VDT0VQLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25D
T09QLCBBU0NJSUxpdGVyYWwgZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3Jp
Z2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dh
cCBleHBlY3RTd2FwKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gc291cmNlSGVhZGVyczsKICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoc291cmNl
Q09PUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5Il9zLCBTdHJpbmcoc291cmNlQ09PUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIHNvdXJjZUNPT1ApOwogICAgIGlmIChzb3Vy
Y2VDT0VQKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVy
LVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPRVApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5h
ZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIHNvdXJjZUNPRVApOwogCiAgICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZGVzdGluYXRpb25IZWFkZXJzOwogICAgIGRlc3RpbmF0
aW9uSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYg
KGRlc3RpbmF0aW9uQ09PUCkKLSAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPT1ApKTsKKyAgICAg
ICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3Ms
IGRlc3RpbmF0aW9uQ09PUCk7CiAgICAgaWYgKGRlc3RpbmF0aW9uQ09FUCkKLSAgICAgICAgZGVz
dGluYXRpb25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgU3Ry
aW5nKGRlc3RpbmF0aW9uQ09FUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJD
cm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPRVApOwogICAgIEhU
VFBSZXNwb25zZSBkZXN0aW5hdGlvblJlc3BvbnNlKFdURk1vdmUoZGVzdGluYXRpb25IZWFkZXJz
KSwgInBvcHVwIl9zKTsKIAogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJf
bGlzdDxzdGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiB7IH0sIEhUVFBTZXJ2ZXI6OlBy
b3RvY29sOjpIdHRwcyk7CkBAIC03NDI3LDggKzc0MjcsOCBAQCBzdGF0aWMgdm9pZCBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJj
ZUNPRQogCiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uKCk7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1By
b2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5nZXQoKV0pOwotICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xh
dGVkID0gc291cmNlQ09PUCAmJiAhc3RyY21wKHNvdXJjZUNPT1AsICJzYW1lLW9yaWdpbiIpICYm
IHNvdXJjZUNPRVAgJiYgIXN0cmNtcChzb3VyY2VDT0VQLCAicmVxdWlyZS1jb3JwIik7Ci0gICAg
Ym9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9u
Q09PUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgZGVzdGlu
YXRpb25DT0VQICYmICFzdHJjbXAoZGVzdGluYXRpb25DT0VQLCAicmVxdWlyZS1jb3JwIik7Cisg
ICAgYm9vbCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QID09
ICJzYW1lLW9yaWdpbiJfcyAmJiBzb3VyY2VDT0VQID09ICJyZXF1aXJlLWNvcnAiX3M7CisgICAg
Ym9vbCBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCA9IGRlc3RpbmF0aW9u
Q09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgZGVzdGluYXRpb25DT0VQID09ICJyZXF1aXJlLWNv
cnAiX3M7CiAgICAgRVhQRUNUX1RSVUUoc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVk
ID09IGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkIHx8IGV4cGVjdFN3YXAg
PT0gRXhwZWN0U3dhcDo6WWVzKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNzU4Miwy
MTEgKzc1ODIsMjExIEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3Qg
Y2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJf
cywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09Q
QW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4y
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4z
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1u
b25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxw
dHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJyZXF1aXJlLWNvcnAiLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4tYWxsb3ctcG9wdXAiX3MsICJyZXF1aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09F
UFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJf
cywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVzZSB0aGUgZGVzdGlu
YXRpb24gaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIHNvdXJjZSBpcyBtaXNzaW5n
IENPRVAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKIHsKICAg
ICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2ZSBD
T09QPXNhbWUtb3JpZ2luLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkK
IHsKICAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3Qg
aGF2ZSBDT09QPXNhbWUtb3JpZ2luIGFuZCBDT0VQPXJlcXVpcmUtY29ycC4KLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVp
cmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMs
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9y
aWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2lu
IiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2Fm
ZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVs
bHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3Jp
Z2luRnJvbUNPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRy
LCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmln
aW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2Ft
ZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3Ms
IHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDQpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUi
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIHN0YXRpYyBib29sIGlzSklU
RW5hYmxlZChXS1dlYlZpZXcgKndlYlZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IGM4
MTcyMTg0YTBhMWQ3NTZjNGU4YTE3YWIxNGJiYTNlNjYwMjE3MjAuLmY0NzBlNmVjYTZjODRjNzAw
NjllNmE1NTkwYmM3MDFhZTliYzAwMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC0yMTM1
LDkgKzIxMzUsOSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDb250ZW50UnVsZUxpc3QpCiAgICAg
dXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10g
KENvbm5lY3Rpb24gY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQ
UmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiIH19LCBtYWluQnl0
ZXMpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBS
ZXNwb25zZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyB9IH0sIG1haW5CeXRl
cykuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZl
SFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2Uoe3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0IiB9fSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUo
KSwgWz1dIHsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25z
ZSh7IHsgIkNvbnRlbnQtVHlwZSJfcywgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiX3MgfSB9LCBj
b250ZW50UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAg
ICAgICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3Rvcjxj
aGFyPiYmIGxhc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNU
X1RSVUUoc3RybnN0cigoY29uc3QgY2hhciopbGFzdFJlcXVlc3QuZGF0YSgpLCAiYWxsb3dlZHN1
YnJlc291cmNlIiwgbGFzdFJlcXVlc3Quc2l6ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgic3VjY2Vzc2Z1bCBmZXRjaCJfcyku
c2VyaWFsaXplKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGZk
ZDY3MDg2ODNlYmNiZWYyMmUwODU2N2Y3NmJlNTk2ZTE4MGRkMzkuLmVlZTNlMDI4MTVkZTJkMWI5
OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KQEAgLTI4Myw4ICsyODMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIHsKIAotY29uc3QgY2hhciBwYXJlbnRGcmFtZVtdID0gIjxodG1sPjxpZnJhbWUgaWQ9
J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0bWw+IjsKLWNvbnN0IGNo
YXIgc3ViRnJhbWVbXSA9CitzdGF0aWMgY29uc3RleHByIGF1dG8gcGFyZW50RnJhbWUgPSAiPGh0
bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRt
bD4iX3M7CitzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjxodG1sPiIKICI8aW5w
dXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0Jz4iCiAiPHNjcmlwdD4iCkBAIC0yOTksNyArMjk5LDcg
QEAgY29uc3QgY2hhciBzdWJGcmFtZVtdID0KICIgICAgfTsiCiAiICAgIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5nZXQob3B0aW9ucyk7IgogIjwvc2NyaXB0PiIKLSI8L2h0bWw+IjsKKyI8L2h0bWw+
Il9zOwogCiBzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAppbmRleCAwNTQwNTUzN2E3NTc0OGQwZmVmZjhk
ZjU4ZDQ2NTA2YjA2ZDIxNWFlLi5kMDIwZDZlOGVjODdhNzM1NzA0YWY1ZjViZjJiYTgyNGZkZmI4
ZDVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFNTTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RT
U0wuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHVibGljOgogICAgICAgICBhc3NlcnRPYmplY3RJ
c0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGNlcnRpZmljYXRlKSk7CiAgICAgICAg
IG1fY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0ZTsKICAgICAgICAgbV90bHNFcnJvcnMgPSB0bHNF
cnJvcnM7Ci0gICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTChTdHJpbmcgeyBmYWlsaW5nVVJJIH0p
OworICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGZhaWxpbmdV
UkkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IGI3YzFj
YzFjNWM1M2I5NzA2ZWRkNGJjNGY3NzJjYTI5NjNkMTM0MmYuLmQ4NTUwOGE1ZDMyZTZhNzcwNWMz
MGU3ZWVlOTg2YTg4MWUxNDA0ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIHZvaWQgd2luZG93UHJvcGVydGllc05vdGlmeUNhbGxiYWNrKEdP
YmplY3QqLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMsIFVJQ2xpZW50VGVzdCogdGVzdCkKICAgICB7
Ci0gICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0cmluZyB7IGdf
cGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpIH0pOworICAgICAgICB0ZXN0LT5tX3dpbmRv
d1Byb3BlcnRpZXNDaGFuZ2VkLmFkZChTdHJpbmc6OmZyb21MYXRpbjEoZ19wYXJhbV9zcGVjX2dl
dF9uYW1lKHBhcmFtU3BlYykpKTsKICAgICB9CiAKICAgICBzdGF0aWMgV2ViS2l0V2ViVmlldyog
dmlld0NyZWF0ZUNhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE5hdmlnYXRp
b25BY3Rpb24qIG5hdmlnYXRpb24sIFVJQ2xpZW50VGVzdCogdGVzdCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMu
Y3BwCmluZGV4IGM1NjkwMmEyMjk3MDcyMmQzY2MxMTZiYmEzMTBkZGI2YjQzZGU4OWIuLjdkZWQ2
NmNlNjZkYzVhNGFhMzMyMzcxMDkwYTBhNDkwZTk4ZTM3NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNw
cApAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25QYWdlSUQo
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgLy8gUmVnaXN0ZXIgYSBjdXN0
b20gVVJJIHNjaGVtZSB0byB0ZXN0IGhpc3RvcnkgbmF2aWdhdGlvbi4KICAgICB3ZWJraXRfd2Vi
X2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCksICJm
b28iLAogICAgICAgICBbXShXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBncG9pbnRl
cikgewotICAgICAgICAgICAgVVJMIHVybCA9IFVSTChTdHJpbmcgeyB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgICAgICAgICBVUkwgdXJsID0gVVJM
KFN0cmluZzo6ZnJvbUxhdGluMSh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVx
dWVzdCkpKTsKICAgICAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9
IGFkb3B0R1JlZihnX21lbW9yeV9pbnB1dF9zdHJlYW1fbmV3KCkpOwogICAgICAgICAgICAgY2hh
ciogaHRtbCA9IGdfc3RyZHVwX3ByaW50ZigiPGh0bWw+PGhlYWQ+PHRpdGxlPiVzPC90aXRsZT48
L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCB1cmwuaG9zdCgpID09ICJob3N0NSIgPyAiVGl0
bGU1IiA6ICJUaXRsZTYiKTsKICAgICAgICAgICAgIGdfbWVtb3J5X2lucHV0X3N0cmVhbV9hZGRf
ZGF0YShHX01FTU9SWV9JTlBVVF9TVFJFQU0oaW5wdXRTdHJlYW0uZ2V0KCkpLCBodG1sLCBzdHJs
ZW4oaHRtbCksIGdfZnJlZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBhNDNjOTNl
YTk4NGMzYTZmYjVmYjQwOWEyMDdiYzdmODY1NzNjZDdkLi4zMTIwNzhmN2NhNGFhOTA3OWRiNDY4
MzA5NDgwNWVhYmVmOTIzOGZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTE5NSw3
ICsxOTUsNyBAQCBwdWJsaWM6CiAKIFN0cmluZyBnZW5lcmF0ZUhUTUxDb250ZW50KHVuc2lnbmVk
IGNvbnRlbnRMZW5ndGgpCiB7Ci0gICAgU3RyaW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6MDEyMzQ1Nzg5MCIpOworICAgIFN0cmluZyBiYXNlU3RyaW5nKCJhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiX3MpOwogICAgIHVuc2lnbmVkIGJhc2VMZW5n
dGggPSBiYXNlU3RyaW5nLmxlbmd0aCgpOwogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5D
b3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5D
b3B5VVJMLm1tCmluZGV4IGE4NGRhNWVhMmYwZWEzNmUxOTdkYjkzMGIwNGM0NzIzNzg1NDdmOTku
LjkwOTJkZTAwNDIzN2NlODg2NDI1ZWI3YTAwMjcyODI3ODZjOWQ0NjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0K
QEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5
VVJMKQogICAgIGNvbnRleHRNZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCiAg
ICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIGdl
bmVyYWxQYXN0ZWJvYXJkXV07Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJr
aXQub3JnLyIpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVT
dHJpbmddKSk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDEpOwog
ICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nh
blBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTExODcyMDYzNWIwYjgzYTMu
LmE1ZjdiYmY1N2I5YjA3NTJlYTQzNjc0MDY4NjRlM2I0MDAwMTk3YmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KQEAgLTQ2
LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5QYXN0ZVVSTCkKICAgICBE
T01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNob3JFbGVtZW50ICopW2Rv
Y3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5TU3RyaW5nICp0ZXh0ID0g
W2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDov
L3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyh0ZXh0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KaW5k
ZXggM2EyZmFkZWE2YTA0MjIzNTJmZDI3YzcxYzBlNjEwYTFiMGM5NzlhYS4uYzQzYWVjZDE4OWU3
NjQxOGFkYmFhNmMxYWE1NGVhNGE5Y2VhMWMxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0KQEAgLTY0LDcgKzY0LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3
ICopd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6KE5TVVJMICopVVJMIGQK
IAogLSh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBh
bmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXZWJG
cmFtZSAqKWZyYW1lCiB7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiUEFTUyIpLCBTdHJpbmcobWVz
c2FnZSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiX3MpLCBTdHJpbmcobWVzc2FnZSkp
OwogICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
SFRUUFNlcnZlci5tbQppbmRleCAyOTQ5MDI1ZjcwOWJmNDEzYjRhZjRiNjlmNzMzMGVkZjVjMTJh
ZTZiLi4wZjJhN2M3ZDM4YjM2ZWQ3YTUyNzE5ZjA2MzA1MTRjMTNkMmQ3NTRmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NjcsOSArNDY3LDkgQEAgdm9pZCBD
b25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbm5lY3Rpb25IYW5kbGUKICAgICAgICAgfTsKIAogICAgICAgICBjb25uZWN0aW9uLnNlbmQo
SFRUUFJlc3BvbnNlKDEwMSwgewotICAgICAgICAgICAgeyAiVXBncmFkZSIsICJ3ZWJzb2NrZXQi
IH0sCi0gICAgICAgICAgICB7ICJDb25uZWN0aW9uIiwgIlVwZ3JhZGUiIH0sCi0gICAgICAgICAg
ICB7ICJTZWMtV2ViU29ja2V0LUFjY2VwdCIsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3Qp
IH0KKyAgICAgICAgICAgIHsgIlVwZ3JhZGUiX3MsICJ3ZWJzb2NrZXQiX3MgfSwKKyAgICAgICAg
ICAgIHsgIkNvbm5lY3Rpb24iX3MsICJVcGdyYWRlIl9zIH0sCisgICAgICAgICAgICB7ICJTZWMt
V2ViU29ja2V0LUFjY2VwdCJfcywgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQogICAg
ICAgICB9KS5zZXJpYWxpemUoSFRUUFJlc3BvbnNlOjpJbmNsdWRlQ29udGVudExlbmd0aDo6Tm8p
LCBXVEZNb3ZlKGNvbm5lY3Rpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CkBAIC02MzMsNyArNjMz
LDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCiAgICAg
InE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStxNVBQUkZS
SXNxaGVPeHQiCiAgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpVUW15WnM3
NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCiAgICAgIkczUEZuWWJXOHVySDBOU0pHL1crLzlEQStZ
N0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAgIjN2alpEM3k5a1pr
N21yZTlYSHdrSThNZEs1cz0iKTsKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSJf
cyk7CiAgICAgCiAgICAgYXV0byBkZWNvZGVkQ2VydGlmaWNhdGUgPSBiYXNlNjREZWNvZGUocGVt
RW5jb2RlZENlcnRpZmljYXRlKTsKICAgICByZXR1cm4gV1RGTW92ZSgqZGVjb2RlZENlcnRpZmlj
YXRlKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVz
dFByaXZhdGVLZXkoKQogICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95OS9KZVJqa1lH
SEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgogICAgICJ2dWVQY1RqcjdubmZZMXN6dHZmVmw5
RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgogICAgICJkRU9idmNw
U2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRzZ3RkekRnckZl
IgotICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSIpOworICAgICJxSmZVOGJi
ZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSJfcyk7CiAKICAgICBhdXRvIGRlY29kZWRQcml2YXRl
S2V5ID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAgICByZXR1cm4gV1RG
TW92ZSgqZGVjb2RlZFByaXZhdGVLZXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcAppbmRleCAyODAzNDExNDBm
MDJmODRmNzk0OTRlZWM0YjdlMzZiMTFjMDk5ZDgzLi44ZGZhNGUyM2Y0ZTQ5MDI1MmIzOWE0YjY2
N2ZhYjkzMjI1Y2RhY2YxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2Vi
S2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcApAQCAtMTAxLDEyICsxMDEsMTIgQEAg
Q1N0cmluZyBXZWJLaXRUZXN0U2VydmVyOjpnZXRXZWJTb2NrZXRVUklGb3JQYXRoKGNvbnN0IGNo
YXIqIHBhdGgpIGNvbnN0CiB7CiAgICAgZ19hc3NlcnRfZmFsc2UobV9iYXNlV2ViU29ja2V0VVJM
LmlzTnVsbCgpKTsKICAgICBnX2Fzc2VydF90cnVlKHBhdGggJiYgKnBhdGggPT0gJy8nKTsKLSAg
ICByZXR1cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVSTCwgU3RyaW5nIHsgcGF0aCArIDEgfSkuc3Ry
aW5nKCkudXRmOCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcgc2xhc2guCisgICAgcmV0dXJuIFVS
TChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmluZzo6ZnJvbUxhdGluMShwYXRoICsgMSkpLnN0cmlu
ZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNsYXNoLgogfQogCiBDU3RyaW5nIFdl
YktpdFRlc3RTZXJ2ZXI6OmdldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsK
LSAgICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3RyaW5nIHsgcGF0aCB9KS5zdHJpbmcoKS51dGY4
KCk7CisgICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZzo6ZnJvbUxhdGluMShwYXRoKSku
c3RyaW5nKCkudXRmOCgpOwogfQogCiB1bnNpZ25lZCBXZWJLaXRUZXN0U2VydmVyOjpwb3J0KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29u
dHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRy
b2xsZXJHdGsuY3BwCmluZGV4IDJhODg1MjcxNGFlZmYxYTIxOWQxN2RhNTJmOGU1N2U3ZWI2NWU5
MTguLjQyZmMwYjRmMTNjMTRhZjQ2NDljNjY4NTEyM2YzNjEwMTBlMmZlZTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcApA
QCAtMTg1LDExICsxODUsMTEgQEAgc3RhdGljIFJlZjxKU09OOjpPYmplY3Q+IHRvSlNPTk9iamVj
dChHVmFyaWFudCogdmFyaWFudCkKICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgmaXRl
ciwgInsmc3Z9IiwgJmtleSwgJnZhbHVlKSkgewogICAgICAgICBjb25zdCBHVmFyaWFudFR5cGUq
IHR5cGUgPSBnX3ZhcmlhbnRfZ2V0X3R5cGUodmFsdWUpOwogICAgICAgICBpZiAodHlwZSAmJiBn
X3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKSkKLSAgICAg
ICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmcgeyBrZXkgfSwgdG9KU09OT2JqZWN0
KHZhbHVlKSk7CisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nOjpmcm9t
TGF0aW4xKGtleSksIHRvSlNPTk9iamVjdCh2YWx1ZSkpOwogICAgICAgICBlbHNlIGlmICh0eXBl
ICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1NUUklORykpCi0g
ICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nIHsga2V5IH0sIFN0cmluZyB7
IGdfdmFyaWFudF9nZXRfc3RyaW5nKHZhbHVlLCBudWxscHRyKSB9KTsKKyAgICAgICAgICAgIGpz
b25PYmplY3QtPnNldFN0cmluZyhTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgU3RyaW5nOjpmcm9t
TGF0aW4xKGdfdmFyaWFudF9nZXRfc3RyaW5nKHZhbHVlLCBudWxscHRyKSkpOwogICAgICAgICBl
bHNlIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBF
X0RPVUJMRSkpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXREb3VibGUoU3RyaW5nIHsga2V5
IH0sIGdfdmFyaWFudF9nZXRfZG91YmxlKHZhbHVlKSk7CisgICAgICAgICAgICBqc29uT2JqZWN0
LT5zZXREb3VibGUoU3RyaW5nOjpmcm9tTGF0aW4xKGtleSksIGdfdmFyaWFudF9nZXRfZG91Ymxl
KHZhbHVlKSk7CiAgICAgfQogICAgIHJldHVybiBqc29uT2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwIGIvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCmluZGV4IGNmMTMxYWViYTBhZTM4Njg5Mzc4Mzg2MGVkZmM4NDE1
MjRlMTc4OGMuLmMzZjBkMzk3MjIzN2ViZDM2MzU4MTYzMmM4Y2NlNDgzZmVhNWMyYmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAorKysgYi9Ub29scy9s
bGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKQEAgLTU3LDEzICs1NywxMyBAQCBlbnVtIGNs
YXNzIEV4YW1wbGVGbGFncyB7CiAKIHN0YXRpYyB2b2lkIHRlc3RTdW1tYXJ5UHJvdmlkZXJzKCkK
IHsKLSAgICBTdHJpbmcgYU51bGxTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhTnVsbFN0cmlu
ZyB7IH07CiAgICAgU3RyaW5nSW1wbCogYU51bGxTdHJpbmdJbXBsID0gYU51bGxTdHJpbmcuaW1w
bCgpOwogCi0gICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIiB9OworICAgIFN0cmluZyBhbkVt
cHR5U3RyaW5nIHsgIiJfcyB9OwogICAgIFN0cmluZ0ltcGwqIGFuRW1wdHlTdHJpbmdJbXBsID0g
YW5FbXB0eVN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW44Qml0U3RyaW5nIHsgInLDqXN1
bcOpIiB9OworICAgIGF1dG8gYW44Qml0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKCJyw6lz
dW3DqSIpOwogICAgIFN0cmluZ0ltcGwqIGFuOEJpdFN0cmluZ0ltcGwgPSBhbjhCaXRTdHJpbmcu
aW1wbCgpOwogCiAgICAgU3RyaW5nIGExNkJpdFN0cmluZyA9IHV0ZjE2U3RyaW5nKHUiXHUxNjgw
Q2FwcHVjY2lub1x1MTY4MCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457185</attachid>
            <date>2022-04-09 18:13:32 -0700</date>
            <delta_ts>2022-04-09 20:25:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409181331.patch</filename>
            <type>text/plain</type>
            <size>222891</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBmM2EyNzIzYzEyODMwZDJkMDkuLjE1
YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNlckNvbnRlbnRNYW5hZ2VyRGVzdHJv
eWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZy
b21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAg
ICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9MSUNZX0VSUk9SLCBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBzaG93IGluc3BlY3RvciBVUkw6IG5v
IHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBi
OTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRm
YzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xv
ci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2Vi
S2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
clN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsK
KyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldp
dGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICgh
d2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2Jk
MGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdv
cmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0
b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVu
dGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0
aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3Ry
aW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1m
ZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xp
ZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdw
ZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9w
dCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0g
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9h
ZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9
IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDgg
KzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFw
cCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBs
aWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJp
bmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0
aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmlu
c3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVj
dG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCmluZGV4IDgx
NzFlZjYyY2M3N2MwYjExMmZkZTYxYzkzNmNmM2IwZGZkN2E1ZjYuLjEzYjkwMjkyODc2NzU3MDgy
NmQxYTQ4NTlhYmRjMTViMzllMGJhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCkBA
IC04NCwxNCArODQsMTQgQEAgc3RhdGljIGJvb2wgaXNFR0xJbWFnZUF2YWlsYWJsZShib29sIHVz
ZUluZGV4ZWRHZXRTdHJpbmcpCiAgICAgICAgIEdMaW50IG51bUV4dGVuc2lvbnMgPSAwOwogICAg
ICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTlVNX0VYVEVOU0lPTlMsICZudW1FeHRlbnNpb25zKTsK
ICAgICAgICAgZm9yIChHTGludCBpID0gMDsgaSA8IG51bUV4dGVuc2lvbnM7ICsraSkgewotICAg
ICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKTsKKyAgICAgICAgICAgIFN0
cmluZyBleHRlbnNpb24gPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSk7CiAgICAgICAgICAgICBp
ZiAoZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8fCBleHRlbnNpb24gPT0gIkdMX09F
U19FR0xfaW1hZ2VfZXh0ZXJuYWwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFN0cmluZyBleHRlbnNp
b25zU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6
IGV4dGVuc2lvbnNTdHJpbmcuc3BsaXQoJyAnKSkgewogICAgICAgICAgICAgaWYgKGV4dGVuc2lv
biA9PSAiR0xfT0VTX0VHTF9pbWFnZSIgfHwgZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdl
X2V4dGVybmFsIikKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKaW5kZXggZmUwNGMx
ZmY0NDE2MWMwNzZmNTM3ZGE1MTNjYzJkNzE1Y2E5MDAzZS4uYmU5YmE0YzYwOTIwYjRmNzg4YTJh
YmM1OTA4ZDZkZmFjMDQ4ZjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29tbWFuZHNGb3JLZXl2YWwodW5zaWduZWQga2V5dmFs
LCB1bnNpZ25lZCBtb2RpZmllcnMpOwogCi0gICAgdm9pZCBhZGRQZW5kaW5nRWRpdG9yQ29tbWFu
ZChjb25zdCBjaGFyKiBjb21tYW5kKSB7IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmFwcGVuZChj
b21tYW5kKTsgfQorICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRvckNvbW1hbmQoY29uc3QgY2hhciog
Y29tbWFuZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKGNvbW1hbmQpKTsgfQogCiBwcml2YXRlOgogICAgIEd0a1dpZGdldCogbV9uYXRpdmVXaWRn
ZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKaW5kZXggMzM4NGZhMjU4YzIw
ZjQ0NmYyMTJkYWUyYzI0ZGM5ZDgxMjJiYWQwMS4uNzZlNmNlZmU5MGRjMDBiZTM4NGIzNTdmZDYx
OTFlNmRlYWZhNDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAt
MTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBLZXlib2FyZEV2ZW50JiBldmVudCkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJh
bWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50JiBwbGF0Zm9ybUV2ZW50KQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJl
dEtleUV2ZW50KGV2ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKIAogICAgIGlmICghY29tbWFuZE5hbWUu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUp
LmV4ZWN1dGUoKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVz
cyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleQog
CiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYg
ZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCiB7Ci0gICAgU3RyaW5nIGNvbW1h
bmROYW1lIHsgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFt
ZSA9IFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogICAgIGlm
IChjb21tYW5kTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCmluZGV4IDc2
NDQzYTk0MjU0YWU0ZmU4ZTU4ZjgwN2JhYTUyMTU2YzM2N2QxMWQuLmM3N2ZmNzhjZDNjZDk2Mjdk
MWFlN2I5MzBjODE0NTcwOTQ2NDUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTI2OCw3ICsyNjgsNyBAQCBib29s
IFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZl
bnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25F
dmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5j
b21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBj
b21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVy
cHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBs
YXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2
ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCmluZGV4IGEyMTYzZmQwOTJiNDU0
M2NhYTVhNTIwOTFkYjBhMTMzMzExZWM2ODQuLjM1YzI4OTdhYzg4NzNiMTc0MzFmOWVkNTY3YjIx
Yzk5YmZiMjNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2li
bGVUZXh0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRl
eHRJbXBsLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OnNl
dEF0dHJpYnV0ZXMobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZzZXQsIEJTVFIqIGF0CiAv
LyBJQWNjZXNzaWJsZTIKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OmdldF9hdHRyaWJ1dGVzKEJT
VFIqIGF0dHJpYnV0ZXMpCiB7Ci0gICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSIp
OworICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiX3MpOwogICAgICphdHRyaWJ1
dGVzID0gQlN0cmluZyh0ZXh0KS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKaW5kZXggZjEzMTZk
ZTQ2YzIxMzVhNmQyNmZhYjlkMTQ0ZGViM2Y4MWYwODkzOC4uMDFhNjEyZmRhMzI4OWQ5NjdjYTk2
NzJjYzQyM2UxZDM1ZGE1NTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdGF0aXN0aWNzLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRp
c3RpY3M6OmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKF9DT01fT3V0cHRyX29w
dF8KICAgICBJdGVyYXRvciBlbmQgPSBqc09iamVjdFR5cGVOYW1lcy0+ZW5kKCk7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIGludD4gdHlwZUNvdW50TWFwOwogICAgIGZvciAoSXRlcmF0b3IgY3VycmVu
dCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50
KQotICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZyB7IGN1cnJlbnQtPmtleSB9LCBjdXJy
ZW50LT52YWx1ZSk7CisgICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4x
KGN1cnJlbnQtPmtleSksIGN1cnJlbnQtPnZhbHVlKTsKIAogICAgIENPTVB0cjxJUHJvcGVydHlC
YWcyPiByZXN1bHRzKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxpbnQ+OjpjcmVhdGVJbnN0YW5j
ZSh0eXBlQ291bnRNYXApKTsKICAgICByZXN1bHRzLmNvcHlSZWZUbyh0eXBlTmFtZXNBbmRDb3Vu
dHMpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmphdmFT
Y3JpcHRPYmplY3RUeXBlQ291bnRzKF9DT01fT3V0cHRyX29wdF8gSVByb3BlcnR5CiAgICAgSXRl
cmF0b3IgZW5kID0ganNPYmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBpbnQ+IHR5cGVDb3VudE1hcDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVj
dFR5cGVOYW1lcy0+YmVnaW4oKTsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAg
dHlwZUNvdW50TWFwLnNldChTdHJpbmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUp
OworICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5r
ZXkpLCBjdXJyZW50LT52YWx1ZSk7CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0
cyhBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50
TWFwKSk7CiAgICAgcmVzdWx0cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCmluZGV4IDFjN2FmZDA1MzFhOTJmMzI3YzMzNmI2NWYzYTEyZTA5MzJhNjhm
ZDYuLmIyMzkzNzYyNDBkYzlkMjMwMWZlNWM1OTRiNzE3NDRkZTZlMjI1ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcApAQCAtNDU0LDcgKzQ1NCw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpkb1Rl
eHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZSwgS2V5Ym9hcmRFdmVudCoga2UpCiAg
ICAgICAgIGlmIChkb21FbGVtZW50KSB7CiAgICAgICAgICAgICBJRE9NSFRNTElucHV0RWxlbWVu
dCogZG9tSW5wdXRFbGVtZW50OwogICAgICAgICAgICAgaWYgKFNVQ0NFRURFRChkb21FbGVtZW50
LT5RdWVyeUludGVyZmFjZShJSURfSURPTUhUTUxJbnB1dEVsZW1lbnQsICh2b2lkKiopJmRvbUlu
cHV0RWxlbWVudCkpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGNvbW1hbmQgeyBtX3dlYlZp
ZXctPmludGVycHJldEtleUV2ZW50KGtlKSB9OworICAgICAgICAgICAgICAgIGF1dG8gY29tbWFu
ZCA9IFN0cmluZzo6ZnJvbUxhdGluMShtX3dlYlZpZXctPmludGVycHJldEtleUV2ZW50KGtlKSk7
CiAgICAgICAgICAgICAgICAgLy8gV2UgYWxsb3cgZW1wdHkgY29tbWFuZHMgaGVyZSBiZWNhdXNl
IHRoZSBhcHAgY29kZSBhY3R1YWxseSBkZXBlbmRzIG9uIHRoaXMgYmVpbmcgY2FsbGVkIGZvciBh
bGwga2V5IHByZXNzZXMuCiAgICAgICAgICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gcmV2aXNp
dCB0aGlzIGxhdGVyIGJlY2F1c2UgaXQgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byBzZW5k
IGFuIGVtcHR5IGNvbW1hbmQuCiAgICAgICAgICAgICAgICAgZm9ybURlbGVnYXRlLT5kb1BsYXRm
b3JtQ29tbWFuZChkb21JbnB1dEVsZW1lbnQsIEJTdHJpbmcoY29tbWFuZCksIGtpdChlLT5kb2N1
bWVudCgpLmZyYW1lKCkpLCAmcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBmYTk1MzcyNzJmNzI2ZmVkMzNjN2JmMjJlYTNlYjM4OGMzOTRjZDExLi43Y2UyMDcxMjBj
ZDZmNzZlMGRiNzBmZGVhNDBlMTgzM2NiNTZlZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC03NTAsNyArNzUwLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXMKIHsKICAg
ICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3JrL0NGVVJMRXJy
b3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCiAgICAgLy8gQWx0ZXJuYXRpdmVseSwgd2UgY291bGQg
Y3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmlu
ZygiQ2FuY2VsbGVkIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxF
cnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmluZygiQ2FuY2VsbGVkIl9zKSk7
CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CkBAIC03ODAsNyArNzgwLDcgQEAg
UmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXNwb24KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKSBjb25zdAogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJv
ckRvbWFpbiksIC0xMTAwLCByZXNwb25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4
aXN0LiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21h
aW4pLCAtMTEwMCwgcmVzcG9uc2UudXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4i
X3MpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEyNGE1NzQwNjgw
YTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNkMDRkNjIxYjM1
MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcsNyArMjE0Nyw3
IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNv
bW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRvIGNv
bW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJw
cmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxh
dGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZl
IGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhh
dCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0
ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDExYWM3MTgyZjJj
OGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92
aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6Omlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6OkdldExhc3RFcnJvcigp
ICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
IAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJldHVybiBTdHJp
bmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0Y2E4
MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3MzkwYTEzM2VmMjA4YmEw
OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRp
bjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9y
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAgICAo
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5n
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVz
aERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0Rh
dGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAg
ICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNp
Z25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAg
ICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxX
aXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246
OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVy
Ojp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6
dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBxdWV1
ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwCmluZGV4IGUxOTY2OGNjZDc0OWJiZTlhNjg4ZTA2ODQzNzA4OGZkMzY1OGFmODYu
LmM4ZTgzMDJiZjI5N2EzMTE0ZGUyMDNjMzViMTIzOWYxMjUzMGQxNzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE3NSwxMCArMTE3NSwxMCBA
QCBzdGF0aWMgYm9vbCBoYW5kbGVDb250cm9sQ29tbWFuZChjb25zdCBjaGFyKiBjb21tYW5kKQog
ewogICAgIGlmICghc3RyY21wKCIjQ0hFQ0sgRk9SIEFCQU5ET05FRCBET0NVTUVOVFMiLCBjb21t
YW5kKSkgewogICAgICAgICAvLyBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBzdXBwb3J0IGNoZWNr
aW5nIGZvciBhYmFuZG9uZGVkIGRvY3VtZW50cy4KLSAgICAgICAgU3RyaW5nIHJlc3VsdCgiXG4i
KTsKKyAgICAgICAgQ1N0cmluZyByZXN1bHQoIlxuIik7CiAgICAgICAgIHByaW50ZigiQ29udGVu
dC1UeXBlOiB0ZXh0L3BsYWluXG4iKTsKICAgICAgICAgcHJpbnRmKCJDb250ZW50LUxlbmd0aDog
JXVcbiIsIHJlc3VsdC5sZW5ndGgoKSk7Ci0gICAgICAgIGZ3cml0ZShyZXN1bHQudXRmOCgpLmRh
dGEoKSwgMSwgcmVzdWx0Lmxlbmd0aCgpLCBzdGRvdXQpOworICAgICAgICBmd3JpdGUocmVzdWx0
LmRhdGEoKSwgMSwgcmVzdWx0Lmxlbmd0aCgpLCBzdGRvdXQpOwogICAgICAgICBwcmludGYoIiNF
T0ZcbiIpOwogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiNFT0ZcbiIpOwogICAgICAgICBmZmx1
c2goc3Rkb3V0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Ny
b3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRjMzFmYzEwZGQ4Yjg0MGIx
MDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1NjBhMTAzIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
CkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEZf
Q3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwg
eyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8g
Y29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2lu
YWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhh
c09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIs
IENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmlu
ZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2lu
YWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3Zl
KG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCktPmhhc09uZVJlZigpKTsK
ICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMsNyArNTMsNyBAQCBURVNU
KFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1Ro
cmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBvcmln
aW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAg
U3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJl
YWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwuaW1wbCgp
LT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFk
Q29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2lu
YWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5h
bCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAg
IEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNzIsNyArNzIsNyBA
QCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiAKIFRF
U1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIHsKLSAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1w
bCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwtPmltcGwoKSk7CkBA
IC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25h
bFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVk9wdGlvbmFsU3Ry
aW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCIgfTsKKyAgICBT
dHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3Jp
Z2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2lu
YWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDg2OGNj
YmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2NTIzOTY4NjUxNjg4ODFi
NzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIFRFU1RfRihGaWxl
U3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJvb2wgc3VjY2VzczsKLSAg
ICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9l
eGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nl
c3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBlZEZpbGVEYXRhKFN0cmlu
Zygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6U2hh
cmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX1RS
VUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
ZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2IwMWY0YzM1MjRlOTU3MjVj
YTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAxMTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAtNDksNjEgKzQ5LDYxIEBA
IFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIExvd2VyY2Fz
ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewog
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhl
eChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJjYXNlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwg
MywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMGEiLCBidWls
ZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2Vy
KSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAg
ICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
RkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
ODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBBIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSJfcywgYnVpbGRlcik7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1
aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0MzJkNDg5M2FjMDA3Yzgu
LmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCkBAIC02MywyNSArNjMs
MjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0cnVjdG9yKQogVEVTVChT
dHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
LSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoIiIpOwot
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7
CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWlsZGVyLnRvU3RyaW5nKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIx
OwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0gICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIx
LmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmxlbmd0aCgp
KTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFj
dGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5ndGgoKSk7Ci0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZ
WiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHkoMTAwKTsKQEAgLTEzMCw1
OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZEludE1pbikKICAgICBz
dGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRT
dHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmcoZXhwZWN0ZWRTdHJpbmcu
Y19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KFN0cmluZzo6ZnJv
bUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CiB9CiAKIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3
ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRlcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwor
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIl9zLCBidWls
ZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgYnVsbHNl
eWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwg
ImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtl
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdDJywgIiIpOwogICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmlu
ZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAg
ICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxkZXIgZnJvbSA4LWJp
dCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5nIGNhcGFjaXR5LgogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0xUKGJ1aWxk
ZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxs
c2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hl
cmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBi
dXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1cGNvbnZlcnQgd2Fzbid0
IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsKLSAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsICdlJywg
IiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBi
dWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMzIpOwogICAgICAgICBF
WFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQRUNUX0dFKGJ1aWxkZXIu
Y2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwgU3RyaW5nKCZidWxsc2V5
ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5MiwzMiBAQCBURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJpbmcgc3RyaW5nID0gYnVp
bGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3Ry
aW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAg
ICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRlci5hcHBlbmQoImFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBzdHJp
bmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5
IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CiAgICAg
c3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmlu
Zyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0
cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5n
KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCiAg
ICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3Mp
LCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8g
UmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7
CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1QoU3RyaW5nQnVp
bGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIyNywxMyArMjI3LDEzIEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICB1
bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5n
ID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2Fw
YWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCBz
dHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJz
OCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
Z1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmlu
Zyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAg
ICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGluIGNhc2UgdGhlIGNh
cGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7
CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAg
ICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFC
QyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIGNhcGFjaXR5
ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIu
Y2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFjdGVyczgoKSwgYnVpbGRl
ci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7
CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBidWls
ZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3MpLCBzdHJpbmcxKTsK
IAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRo
ZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgY2Fw
YWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIEVYUEVDVF9FUShz
dHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKICAgICBidWlsZGVy
LnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcx
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQ2xl
YXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUp
CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBidWlsZGVyLnNocmluaygx
MCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoOCk7CiAg
ICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxk
ZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7Ci0gICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5zaHJpbmsoMCk7
CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEgKzMxMSwyMSBAQCBURVNU
KFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJVRShlcXVhbChidWlsZGVy
MSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9PSBidWlsZGVyMSk7Ci0g
ICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7CisgICAgRVhQRUNUX1RS
VUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1aWxkZXIxLmFwcGVuZCgi
MTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICBidWlsZGVyMi5h
cHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0eSg2NCk7CiAgICAgRVhQ
RUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIx
ID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgPT0gYnVp
bGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIl9zKSk7Cisg
ICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIxKTsKIAogICAgIGJ1aWxk
ZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRlcjIp
OwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAh
PSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykgIT0gYnVp
bGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIl9zKSk7CiAg
ICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgogICAg
IEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBA
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAgIEF0b21TdHJpbmcgYXRv
bVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
MTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyJfcyksIGF0b21T
dHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2KTsKICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIyNzFiODY3ZDYyOTBkZDI3
YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFkZWJjMjE3YWRmMjhmYjNm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApAQCAt
NDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFydHNXaXRoSWdub3JpbmdB
U0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCIpOworICAgIFN0cmlu
ZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAgICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlIikpOwog
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
LCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAgQVNTRVJUX1RSVUUoc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIiKSk7Ci0gICAgQVNTRVJU
X1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoIiIpLCAiIikp
OworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW1w
dHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NFUlRfRkFMU0Uoc3RhcnRz
V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIpKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCmluZGV4IDg4MDk0
ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJlNDM2OGMwM2RiN2JhNjMw
YzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDExIEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKIHsKLSAgICBTdHJp
bmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciX3MpOwogICAg
IEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAgIEFTQ0lJTGl0ZXJhbCBs
aXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNr
aW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0
cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgeyBzdHJpbmdWaWV3QmFj
a2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlDb3VudCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGMyNTMzODJkMzRh
MTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVlM2Y2NjY2ZmM5ZjljNDA5
YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RhcnRzV2l0
aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7CiAgICAgU3RyaW5nVmll
dyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0cmluZyBzdHJpbmdXaXRo
Q2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhl
bGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhzdHJpbmdXaXRoQ2hh
cmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0
aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0VtcHR5
VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0gICAgU3RyaW5nVmlldyB2
aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBTdHJpbmdWaWV3IHZpZXdX
aXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdX
aXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFj
dGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXVEYsIFN0cmluZ1Zp
ZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmlu
Z1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBoZW1lQ2x1c3RlcnMoKSwg
eyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0cmluZyBoZWxvKCJoZWxv
Il9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAgICAgYXV0byBjb2RlUG9p
bnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1QoV1RG
LCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9y
LCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRlcmF0b3I7CiAgICAgRVhQ
RUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3RyaW5nIHdlYmtpdCgid2Vi
a2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAgICBhdXRvIHdlYmtpdENv
ZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygpOwogICAgIGNvZGVQb2lu
dHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAgICArK2NvZGVQb2ludHNJ
dGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3U3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVTVChXVEYsIFN0cmluZ1Zp
ZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxs
byIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJD
b2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmlu
Zygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0
cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmll
dyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJp
bmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxT
RShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgiXHUwMDgwIikp
LmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoYml0d2lz
ZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJSSgpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3MGFhZmE0MTMxODI0ZTNk
OGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4MDAxNWI2Y2M3MjQ5ZGQ5
NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCkBAIC02MCwxNiArNjAs
MTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RDaGFyKQogICAgIEVYUEVD
VF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShrdXJsLnByb3RvY29sKCkg
PT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20i
KSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygid3d3LmV4
YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUo
ISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwucG9ydCgpLnZhbHVlKCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwudXNlcigpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3JkKCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIv
aW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRl
eC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBFQ1RfVFJVRShrdXJsLmhh
c0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCIp
LCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFn
bWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQogCiBzdGF0aWMgVVJMIGNy
ZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0MyArODAsNDMgQEAgc3Rh
dGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQogVEVTVF9GKFdURl9V
UkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9j
b2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1l
OkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9p
bmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgw
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAvaW5k
ZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29t
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTov
LyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6
Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVS
TCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmls
ZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNkZjovL3Vz
ZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNm
cmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2EvYi9jIl9zKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5nKQpAQCAt
MzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJraXQub3JnLz8iX3MpOwog
ICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0
b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBF
WFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVybDIpLCB0ZXN0VmVjdG9y
MTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAgVEVTVF9GKFdURl9VUkws
IFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBVUkwgdXJsMyA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmw0ID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7eyJrZXkxIiwgInZhbDEi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Iz
NCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwogICAgIAogICAgIFVSTCB1
cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CiAg
ICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHt7Imtl
eTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4g
dGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RWZWN0b3I1Nik7CiAgICAg
CiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3sia2V5MSIsICJ2YWwxIn0s
IHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBVUkwgdXJsMTUgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJs
MTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyIl9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYge3si
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2KTsKICAgICAKICAgICBV
UkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwgInZhbDIifSwgeyJrZXkz
IiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTEsIHVy
bDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwxNyA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwg
dXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MSZrZXkzPXZhbDMi
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7
ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEi
X3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTcsIHVybDE4KSwgdGVz
dFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJM
IHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwg
eyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAia2V5MSJfcywgIiJfcyB9
LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXky
Il9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0ZXN0VmVjdG9yMTkyMCk7
CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Pz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHsgeyAi
Lz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEo
ZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRlc3RWZWN0b3IyMTIyKTsK
ICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsgeyAiIl9zLCAiPSJfcyB9
LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJh
bWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAgICAKICAgICBVUkwgdXJs
MjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9zKTsKICAgICBVUkwgdXJs
MjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rlc3Q9dGVzdCJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHt7
Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9
LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAKICAgICBVUkwgdXJsMjkg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJfcyk7CiAgICAgVVJMIHVy
bDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0iX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7eyIiLCAiPSJ9
LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyOSwgdXJsMzApLCB0
ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIiX3MsICI/Il9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMxLCB1cmwzMiksIHRl
c3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAiIl9zLCAiPyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNSwgdXJsMjYpLCB0
ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3Iu
Y3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5OTQzNTU1NjMuLmEyMmVi
MjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBAIFRFU1QoV1RGX1ZlY3Rv
ciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJvbUhhc2hNYXApCiB7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsx
IiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImsyIiB9LCBTdHJp
bmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9LCBTdHJpbmcgeyAidjMi
IH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1hcC5zZXQoImsyIl9zLCAi
djIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAgICAgYXV0byBtYXBwZWQg
PSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPiYgcGFpcikg
LT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0NWZiZGQ1MDI3MGYyMWY2
NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1YWQ1MWM1NWRlYjdkMjM2
YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKQEAg
LTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25Gcm9tTGl0ZXJhbCkKICAg
ICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4IiksIHN0cmlu
Z0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiRXhwbGljaXQg
Y29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogICAgIEVY
UEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0KCkpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxp
dGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0
aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOwogCiAgICAgU3RyaW5n
IHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7CiAgICAgRVhQRUNUX0VR
KHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVyYWwubGVuZ3RoKCkpOwog
ICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFsKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsKTsKIH0KIAog
VEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBURVNUKFdURiwgU3RyaW5n
U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxsU3RyaW5nOwogICAgIFN0
cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAgICBTdHJpbmcgc3RyaW5n
V2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJz
KCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVycy5zdGFy
dHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRoQ2hhcmFjdGVy
cy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMxLDcgQEAgVEVTVChXVEYs
IFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAg
ICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBFWFBFQ1RfVFJVRShyZXN1
bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShy
ZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKIH0K
IAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAgLTI5Myw1MSArMjkzLDUx
IEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1RfRVEoMC4wLCBlbXB0eVN0
cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKLSAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBT
dHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAi
X3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3Vi
bGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9E
b3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2VlIGxlYWRpbmcganVuawot
ICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwg
U3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHN1
Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5n
KCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxpbmcganVuaywgYnV0IHJl
dHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluY29uc2lzdGVu
Y3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAgICAvLyBpdCB3aWxsIHJl
dHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2UgZm9yIG9rLgotICAgIEVY
UEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5n
KCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCJfcyku
dG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9u
bHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImluZmluaXR5IgotICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAu
MCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1
Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIpLnRvRG91YmxlKCkp
OwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGluZ0F0KQogewotICAgIEVY
UEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJp
bmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygic3QiKS5pczhCaXQo
KSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJU
ZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikpOwotICAgIEVYUEVDVF9G
QUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJTVCIpLCAyKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
c3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0lu
Zml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0
Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAyKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJTVCJfcywgMikpOwog
CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmlzOEJpdCgpKTsK
ICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIikuaXM4Qml0KCkpOwpAQCAt
MzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4U3RhcnRpbmdBdCkKICAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5n
Ojpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgo
IuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9
IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Lit
IiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFz
SW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRl
c3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOwog
fQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAgIFN0cmluZyBzdHJpbmcx
KCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVy
YWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3RyaW5nMS5pbXBsKCktPmhh
c2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQog
CiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkKIHsKLSAgICBTdHJpbmcg
c3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJfcyk7CiAgICAgRVhQRUNU
X0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZzEuaXM4Qml0
KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBm
ZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5hOTk3MTIzNGMzYzIwY2Yx
NDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTE3OTIsNyArMTc5
Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1cmVzKQogICAg
IHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0
ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBjaGFyIG5vbkFTQ0lJWzJd
ID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmcgeyBub25BU0NJSSB9
LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVND
SUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSSks
IENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJ
SSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250ZW50RXh0ZW5zaW9uczo6
VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIAogICAgIHRlc3RQ
YXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1YjFjOGVkNDdlYTRiYzZl
MmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMzNWQ4MjhhMDAwZWMyYzQy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0
b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3RE
YXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yUmV2aXNlZERh
dGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Ci1jb25zdCBTdHJp
bmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4
dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclRlc3REYXRhKCJUaGlz
IGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhp
cyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZp
bGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9y
IHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6
OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2ZkZWYyOTViODJjZGIwNTI3
OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMxODBkZmQ3MDdmYzI3NWVh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRl
ckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhl
YWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBIZWFkZXJGaWVsZCwgUGFy
c2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwiYUE/XHQgXCIiX3MsCiAg
ICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJ
Q29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1lbnQg
fSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5RdW90ZSB9LAorICAgICAg
ICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpm
cm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6
ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAg
ICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNUKEhUVFBIZWFkZXJGaWVs
ZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAgImE6IFwiXGFcIiJfcywK
ICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAgU3RyaW5nIHsgZGVsSW5R
dW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5RdW90ZSksCiAgICAgfSk7
CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAwZGUxZDNlNjQwYzdjY2Nk
ZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3NTdjYTBlOTEzYzI5MTA4
MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENv
ZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29k
aW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldERv
dWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5nKQogewotICAgIEVYUEVD
VF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJp
bmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQi
KSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNv
ZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywg
U3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2RpbmcsIEdldE5vbkV4aXN0
aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1ZDU0OTVlMzljMWNk
OTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2JlOTk3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAt
MTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5c
dTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJp
bmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VR
KFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3Qu
Y28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwu
dWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4t
LXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0Lnhu
LS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRl
c3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRv
bWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
KCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4x
Il9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNv
bSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VR
KFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsK
ICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3Ry
aW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxl
LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOl
w6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
w4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxl
LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJf
cyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4x
KCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAppbmRleCA3MWVmZWFjY2Zi
ODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMwZjE0Y2U5MjU1ZTI0NDhi
YTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBAIFRFU1QoUHVzaERhdGFi
YXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBy
ZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50ZihzY29wZSwgc2l6ZW9mKHNj
b3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7CiAgICAgICAgICAgICBz
bnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwgaSk7Ci0gICAgICAgICAg
ICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAgICAgICAgcmVjb3JkLnRv
cGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29yZC5zY29wZSA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQudG9waWMgPSBTdHJpbmc6
OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFzZS5pbnNlcnRSZWNvcmQo
cmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUo
cmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
aGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZjMWNjMmFhODc0OGFkZDUx
NS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUzMCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTQz
LDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUX0YoRnJhZ21lbnRl
ZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlzc2luZ0ZpbGUpCiB7Ci0g
ICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShT
dHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJf
cykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgVEVT
VF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0
aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRl
bnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYnVmZmVyKTsK
ICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4oRnJhZ21lbnRlZFNoYXJl
ZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VD
b250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShT
dHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkp
ID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXpl
KCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRo
Q29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAppbmRleCBk
YzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40ZDI3ZjRmZDRiNTUyMjg3
NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcApAQCAtMTM5
LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29k
aW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3Q/w5/wn5iNI8Of
8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
ICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgIiVDMyU5RiVGMCU5
RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMzJTlGJUYwJTlGJTk4JThE
IyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzKTsK
IAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxhdGluMSIpKTsKKyAgICBQ
QUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNoZWNrVVJMKCJodHRwOi8v
aG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSUyMHdpdGgl
MjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnklMjB3aXRoJTIw
c3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9xdWVyeSJfcywgJmxhdGlu
MSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30p
OwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywgJmxhdGluMSwgeyJodHRw
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICJx
dWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVyeSJfc30pOwpAQCAtMTUx
LDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdUZXN0LCBRdWVyeUVuY29k
aW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZ1bnJlY29nbml6ZWQs
IHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
Il9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvPyJfc30pOwog
ICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3Ms
IGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlT
dHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKIAotICAgIFBBTDo6
VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIpKTsKKyAgICBQQUw6OlRl
eHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0cmluZyB3aXRoVW1sYXV0
cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdcMCd9KTsKICAgICBjaGVj
a1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5
MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIv
cGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJpbmcoKSwgIndzOi8vaG9z
dC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNrVVJMKG1ha2VTdHJpbmco
IndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5MSwgeyJ3c3MiX3MsIGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMl
OUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9ob3N0L3BhdGg/JUMzJTlD
JUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDJkZDdlNGFlN2EwMWMyOWVmMTRiZTg5
ZmVkYWIyODVkOTc2Zjk4MDMuLjFhNWI1ZDZhZDhkZDE3NTg5Njg5OTQ0YmRiYzk0NjM2ODM3ZTgx
NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdl
bnRRdWlya3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2Vy
QWdlbnRRdWlya3MuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzQ2hyb21lQnJvd3NlclF1
aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVz
ZXJBZ2VudEZvclVSTChVUkwoIFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5n
ID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7
CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiQ2hyb21lIikpOwogICAgIEVY
UEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7CkBAIC00NSw3ICs0NSw3IEBA
IHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJyb3dzZXJRdWlyayhj
b25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Zp
cmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmlu
ZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0
cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21M
YXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5zKCJDaHJv
bWUiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7CkBA
IC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0ZpcmVm
b3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2Vy
QWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBT
dHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJs
IH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNv
bnRhaW5zKCJNYWNpbnRvc2giKSk7CiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMo
Ik1hYyBPUyBYIikpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdl
bnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIC8vIHRoYXQgdGhl
IHN0YW5kYXJkIHVzZXIgYWdlbnQgc2hvdWxkIGJlIHVzZWQuKQogc3RhdGljIHZvaWQgYXNzZXJ0
VXNlckFnZW50Rm9yVVJMSGFzRW1wdHlRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3Ry
aW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7IHVybCB9
KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0
cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmlzTnVs
bCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRleCA3NTMyODE4NGM0Y2U0
ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2NTFlNzJhZmEwYTRlZDIx
NjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQpAQCAtOTksNyArOTks
NyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQogICAgIC8vIEluIHRoaXMg
Y2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3JtYXRpb24gZnJvbSBib3Ro
IHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMsIGFuZCByZW1vdmUgdGhl
IGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmls
ZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VU
cmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwog
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywg
NDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3Jp
Z2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBub3QgYW4gYWN0dWFsIGRh
dGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZSBy
ZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0g
RmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7Cisg
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgp
OwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJf
cywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
T3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB3
ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVpdGhlciB0aGUgRGF0YWJh
c2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVj
dG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwot
ICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtp
dC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1RhYmxlKQogICAgIC8vIFRo
ZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBPcmlnaW5zIHRh
YmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQgZnJvbSBkaXNr
LgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1w
b3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJh
c2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRo
RGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5E
YXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjcyLDcgKzI3
Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZSkKICAgICAvLyBhbmQg
YSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRoZSBkYXRhYmFzZSBzaG91
bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBpbmZvcm1hdGlvbiBzaG91
bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIFRl
c3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFiYXNlIHRoYXQgZG9lc24n
dCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZW1vdmUgdGhlIGRhdGFi
YXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4KICAgICBOU1N0cmluZyAq
d2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAi
V2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxE
aXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJh
c2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBz
Il9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2ODY1NDNmZjMwYTFiNmVk
NDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAzYjVhZDA3MWU0NmFlYmQ5
MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
aGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
aGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+
IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5RcVp5UmJ1NUlvSG1IQXli
cGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRrS0Y4Y3dvQmVBZWlSTGtU
NDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4dCt6IgogICAgICI2NjhC
bjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4wNVR6Nm5ZejMxWTQwRm0x
U3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiIpOworICAgICJoZ095
L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBTdHJpbmcgcGVtRW5jb2Rl
ZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFKUm5NM0lqQU5CZ2txaGtp
Rzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyArMTczLDcgQEAgUmV0YWlu
UHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAiNDZpemhvdTNHU0t6M1gx
ZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNkamcyRG5YYyIKICAgICAi
OTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJqOWhBdUtKWHBOT0lhNG9J
TUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdBcUF2L2hCOUpZbmMyT2lR
MlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4
PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9zKTsKIAogICAgIGF1dG8g
cHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQcml2YXRlS2V5KTsKICAg
ICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZENlcnRpZmlj
YXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBjOTQ4MTc4N2NiM2IxMGVm
OTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4MGQ2YzE1Yzg1ZTQ3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0
cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
dmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgc2lnblVu
bGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5n
UGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVz
dDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QyLnNpemUoKSkpOwogCiAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5nID0gU3RyaW5nKHJlcXVl
c3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3VubGlu
a2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmlu
Z1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxp
bmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5saW5rYWJsZV90b2tlbiJf
cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcu
ZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgp
ICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcu
ZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5s
aW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQ
YXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1
ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25p
bmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2Vj
cmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5
ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9r
ZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3MpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQgPSByZXF1ZXN0NFN0cmlu
Zy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0z
MjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNy
ZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0gYmFzZTY0VVJMRGVjb2Rl
KHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRv
a2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dG9rZW5WZWN0
b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwogCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2ln
bmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJl
IikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0g
VG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9z
aWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW5fc2lnbmF0dXJl
Il9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHJl
cXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyInLCBzdGFydCk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNlYTgxMDkzY2ZlZTVmODgy
ZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNlNWU5NTQ1NDQ5YTkzOTI3
ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTczODksMjMgKzcz
ODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJOYXZpZ2F0aW5nQXdh
eUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07
CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKLXN0
YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwg
Y29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBjb25z
dCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3
YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFTQ0lJTGl0ZXJhbCBzb3Vy
Y2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9u
Q09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9y
aWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3
YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKIAog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7CiAgICAgc291cmNlSGVh
ZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7CiAgICAgaWYgKHNvdXJj
ZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291cmNlSGVhZGVycy5hZGQo
IkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09QKTsKICAgICBpZiAoc291
cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRl
ci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMu
YWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3VyY2VDT0VQKTsKIAogICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVyczsKICAgICBkZXN0aW5h
dGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlm
IChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT09QKSk7CisgICAg
ICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9z
LCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNPRVApCi0gICAgICAgIGRl
c3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0
cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT0VQKTsKICAgICBI
VFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRlc3RpbmF0aW9uSGVhZGVy
cyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihzdGQ6OmluaXRpYWxpemVy
X2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9LCBIVFRQU2VydmVyOjpQ
cm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3RhdGljIHZvaWQgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3Vy
Y2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQ
cm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29s
YXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAic2FtZS1vcmlnaW4iKSAm
JiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVpcmUtY29ycCIpOwotICAg
IGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlv
bkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9yaWdpbiIpICYmIGRlc3Rp
bmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJlcXVpcmUtY29ycCIpOwor
ICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVkID0gc291cmNlQ09PUCA9
PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWlyZS1jb3JwIl9zOworICAg
IGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBkZXN0aW5hdGlv
bkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09FUCA9PSAicmVxdWlyZS1j
b3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRlZCB8fCBleHBlY3RTd2Fw
ID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTc1ODIs
MjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0
IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1lLW9yaWdp
biJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVu
c2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1vcmlnaW4i
X3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9z
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0
ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6
WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1j
b3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
MikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
ICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
MykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2Ft
ZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1u
b25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVxdWlyZS1jb3JwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIG51bGxw
dHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVu
c2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVu
c2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJlY2F1c2UgdGhlIGRlc3Rp
bmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3Jw
Il9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9y
aWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBzb3VyY2UgaXMgbWlzc2lu
ZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3QpCiB7CiAg
ICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0IGhhdmUg
Q09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW5XaXRoUmVkaXJlY3Qp
CiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVjdCBkb2Vzbid0
IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNvcnAuCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2FtZS1v
cmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jv
c3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9LCAic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdp
biIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9u
ZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5U
b0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51
bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAicmVxdWly
ZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJz
YW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9z
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1u
b25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3Jp
Z2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVp
cmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAi
cmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVxdWly
ZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgeyB9LCB7IH0sIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNh
bWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5z
YWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25l
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBzdGF0aWMgYm9vbCBpc0pJ
VEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCBj
ODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5mNDcwZTZlY2E2Yzg0Yzcw
MDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMjEz
NSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVudFJ1bGVMaXN0KQogICAg
IHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFtd
IChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRU
UFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLnNl
bmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiB9fSwgbWFpbkJ5
dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQ
UmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwiX3MgfSB9LCBtYWluQnl0
ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2
ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRp
b24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFsaXpl
KCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9u
c2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il9zIH0gfSwg
Y29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8
Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVD
VF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRhdGEoKSwgImFsbG93ZWRz
dWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nlc3NmdWwgZmV0Y2giX3Mp
LnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBm
ZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5lZWUzZTAyODE1ZGUyZDFi
OThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8aHRtbD48aWZyYW1lIGlk
PSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiI7Ci1jb25zdCBj
aGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBhcmVudEZyYW1lID0gIjxo
dG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1sJz48L2lmcmFtZT48L2h0
bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0KICI8aHRtbD4iCiAiPGlu
cHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpAQCAtMjk5LDcgKzI5OSw3
IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAgICBuYXZpZ2F0b3IuY3Jl
ZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9odG1sPiI7CisiPC9odG1s
PiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMDU0MDU1MzdhNzU3NDhkMGZlZmY4
ZGY1OGQ0NjUwNmIwNmQyMTVhZS4uZDAyMGQ2ZThlYzg3YTczNTcwNGFmNWY1YmYyYmE4MjRmZGZi
OGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
U1NMLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgYXNzZXJ0T2JqZWN0
SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjZXJ0aWZpY2F0ZSkpOwogICAgICAg
ICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAgICAgICAgIG1fdGxzRXJyb3JzID0gdGxz
RXJyb3JzOwotICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5nIHsgZmFpbGluZ1VSSSB9
KTsKKyAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZzo6ZnJvbUxhdGluMShmYWlsaW5n
VVJJKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAppbmRleCBiN2Mx
Y2MxYzVjNTNiOTcwNmVkZDRiYzRmNzcyY2EyOTYzZDEzNDJmLi5kODU1MDhhNWQzMmU2YTc3MDVj
MzBlN2VlZTk4NmE4ODFlMTQwNGRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHdpbmRvd1Byb3BlcnRpZXNOb3RpZnlDYWxsYmFjayhH
T2JqZWN0KiwgR1BhcmFtU3BlYyogcGFyYW1TcGVjLCBVSUNsaWVudFRlc3QqIHRlc3QpCiAgICAg
ewotICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFuZ2VkLmFkZChTdHJpbmcgeyBn
X3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSB9KTsKKyAgICAgICAgdGVzdC0+bV93aW5k
b3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcGFyYW1fc3BlY19n
ZXRfbmFtZShwYXJhbVNwZWMpKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFdlYktpdFdlYlZpZXcq
IHZpZXdDcmVhdGVDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXROYXZpZ2F0
aW9uQWN0aW9uKiBuYXZpZ2F0aW9uLCBVSUNsaWVudFRlc3QqIHRlc3QpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25z
LmNwcAppbmRleCBjNTY5MDJhMjI5NzA3MjJkM2NjMTE2YmJhMzEwZGRiNmI0M2RlODliLi43ZGVk
NjZjZTY2ZGM1YTRhYTMzMjM3MTA5MGEwYTQ5MGU5OGUzNzU4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5j
cHAKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uUGFnZUlE
KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIC8vIFJlZ2lzdGVyIGEgY3Vz
dG9tIFVSSSBzY2hlbWUgdG8gdGVzdCBoaXN0b3J5IG5hdmlnYXRpb24uCiAgICAgd2Via2l0X3dl
Yl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUodGVzdC0+bV93ZWJDb250ZXh0LmdldCgpLCAi
Zm9vIiwKICAgICAgICAgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgZ3BvaW50
ZXIpIHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nIHsgd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAgICAgICAgICAgVVJMIHVybCA9IFVS
TChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJl
cXVlc3QpKSk7CiAgICAgICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4gaW5wdXRTdHJlYW0g
PSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsKICAgICAgICAgICAgIGNo
YXIqIGh0bWwgPSBnX3N0cmR1cF9wcmludGYoIjxodG1sPjxoZWFkPjx0aXRsZT4lczwvdGl0bGU+
PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgdXJsLmhvc3QoKSA9PSAiaG9zdDUiID8gIlRp
dGxlNSIgOiAiVGl0bGU2Iik7CiAgICAgICAgICAgICBnX21lbW9yeV9pbnB1dF9zdHJlYW1fYWRk
X2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtLmdldCgpKSwgaHRtbCwgc3Ry
bGVuKGh0bWwpLCBnX2ZyZWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggYTQzYzkz
ZWE5ODRjM2E2ZmI1ZmI0MDlhMjA3YmM3Zjg2NTczY2Q3ZC4uMzEyMDc4ZjdjYTRhYTkwNzlkYjQ2
ODMwOTQ4MDVlYWJlZjkyMzhmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xOTUs
NyArMTk1LDcgQEAgcHVibGljOgogCiBTdHJpbmcgZ2VuZXJhdGVIVE1MQ29udGVudCh1bnNpZ25l
ZCBjb250ZW50TGVuZ3RoKQogewotICAgIFN0cmluZyBiYXNlU3RyaW5nKCJhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiKTsKKyAgICBTdHJpbmcgYmFzZVN0cmluZygiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIl9zKTsKICAgICB1bnNpZ25lZCBiYXNlTGVu
Z3RoID0gYmFzZVN0cmluZy5sZW5ndGgoKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBiMDRjNDcyMzc4NTQ3Zjk5
Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1t
CkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51Q2FuQ29w
eVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIAog
ICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBn
ZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmluZyhbdXJsIGFic29sdXRl
U3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJWaWV3LmdldCgpLCAxKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5Q
YXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUxMTg3MjA2MzViMGI4M2Ez
Li5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2JmIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCkBAIC00
Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2FuUGFzdGVVUkwpCiAgICAg
RE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtk
b2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBOU1N0cmluZyAqdGV4dCA9
IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53
ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCmlu
ZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEuLmM0M2FlY2QxODll
NzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBk
CiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQ
YW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2Vi
RnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3RyaW5nKG1l
c3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwgU3RyaW5nKG1lc3NhZ2Up
KTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0YjY5ZjczMzBlZGY1YzEy
YWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJkNzU0ZiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkgKzQ2Nyw5IEBAIHZvaWQg
Q29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAgY29ubmVjdGlvbi5zZW5k
KEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3JhZGUiLCAid2Vic29ja2V0
IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRlIiB9LAotICAgICAgICAg
ICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0
KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0Il9zIH0sCisgICAgICAg
ICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAgICAgICAgICAgeyAiU2Vj
LVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVlKHJlcXVlc3QpIH0KICAg
ICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNvbnRlbnRMZW5ndGg6Ok5v
KSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQpAQCAtNjMzLDcgKzYz
Myw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQogICAg
ICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJG
UklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpz
NzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REEr
WTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgotICAgICIzdmpaRDN5OWta
azdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0i
X3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0gYmFzZTY0RGVjb2RlKHBl
bUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRDZXJ0aWZp
Y2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IEhUVFBTZXJ2ZXI6OnRl
c3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZ
R0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZs
OUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKICAgICAiZEVPYnZj
cFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JG
ZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsKKyAgICAicUpmVThi
YmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0byBkZWNvZGVkUHJpdmF0
ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgcmV0dXJuIFdU
Rk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKaW5kZXggMjgwMzQxMTQw
ZjAyZjg0Zjc5NDk0ZWVjNGI3ZTM2YjExYzA5OWQ4My4uOGRmYTRlMjNmNGU0OTAyNTJiMzlhNGI2
NjdmYWI5MzIyNWNkYWNmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dl
YktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKQEAgLTEwMSwxMiArMTAxLDEyIEBA
IENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0V2ViU29ja2V0VVJJRm9yUGF0aChjb25zdCBj
aGFyKiBwYXRoKSBjb25zdAogewogICAgIGdfYXNzZXJ0X2ZhbHNlKG1fYmFzZVdlYlNvY2tldFVS
TC5pc051bGwoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShwYXRoICYmICpwYXRoID09ICcvJyk7Ci0g
ICAgcmV0dXJuIFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmluZyB7IHBhdGggKyAxIH0pLnN0
cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNsYXNoLgorICAgIHJldHVybiBV
UkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmc6OmZyb21MYXRpbjEocGF0aCArIDEpKS5zdHJp
bmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KIH0KIAogQ1N0cmluZyBX
ZWJLaXRUZXN0U2VydmVyOjpnZXRVUklGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZyB7IHBhdGggfSkuc3RyaW5nKCkudXRm
OCgpOworICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmc6OmZyb21MYXRpbjEocGF0aCkp
LnN0cmluZygpLnV0ZjgoKTsKIH0KIAogdW5zaWduZWQgV2ViS2l0VGVzdFNlcnZlcjo6cG9ydCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENv
bnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250
cm9sbGVyR3RrLmNwcAppbmRleCAyYTg4NTI3MTRhZWZmMWEyMTlkMTdkYTUyZjhlNTdlN2ViNjVl
OTE4Li40MmZjMGI0ZjEzYzE0YWY0NjQ5YzY2ODUxMjNmMzYxMDEwZTJmZWUzIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAK
QEAgLTE4NSwxMSArMTg1LDExIEBAIHN0YXRpYyBSZWY8SlNPTjo6T2JqZWN0PiB0b0pTT05PYmpl
Y3QoR1ZhcmlhbnQqIHZhcmlhbnQpCiAgICAgd2hpbGUgKGdfdmFyaWFudF9pdGVyX2xvb3AoJml0
ZXIsICJ7JnN2fSIsICZrZXksICZ2YWx1ZSkpIHsKICAgICAgICAgY29uc3QgR1ZhcmlhbnRUeXBl
KiB0eXBlID0gZ192YXJpYW50X2dldF90eXBlKHZhbHVlKTsKICAgICAgICAgaWYgKHR5cGUgJiYg
Z192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCkpCi0gICAg
ICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nIHsga2V5IH0sIHRvSlNPTk9iamVj
dCh2YWx1ZSkpOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0KFN0cmluZzo6ZnJv
bUxhdGluMShrZXkpLCB0b0pTT05PYmplY3QodmFsdWUpKTsKICAgICAgICAgZWxzZSBpZiAodHlw
ZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQRV9TVFJJTkcpKQot
ICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZyB7IGtleSB9LCBTdHJpbmcg
eyBnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikgfSk7CisgICAgICAgICAgICBq
c29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nOjpmcm9tTGF0aW4xKGtleSksIFN0cmluZzo6ZnJv
bUxhdGluMShnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikpKTsKICAgICAgICAg
ZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRfVFlQ
RV9ET1VCTEUpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0RG91YmxlKFN0cmluZyB7IGtl
eSB9LCBnX3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOworICAgICAgICAgICAganNvbk9iamVj
dC0+c2V0RG91YmxlKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBnX3ZhcmlhbnRfZ2V0X2RvdWJs
ZSh2YWx1ZSkpOwogICAgIH0KICAgICByZXR1cm4ganNvbk9iamVjdDsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rvb2xzL2xsZGIvbGxkYldl
YktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4OTM3ODM4NjBlZGZjODQx
NTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4M2ZlYTVjMmJkIDEwMDY0
NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKKysrIGIvVG9vbHMv
bGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyArNTcsMTMgQEAgZW51bSBj
bGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3VtbWFyeVByb3ZpZGVycygp
CiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYU51bGxTdHJp
bmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9IGFOdWxsU3RyaW5nLmlt
cGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsKKyAgICBTdHJpbmcgYW5F
bXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVtcHR5U3RyaW5nSW1wbCA9
IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJpdFN0cmluZyB7ICJyw6lz
dW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMSgicsOp
c3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBsID0gYW44Qml0U3RyaW5n
LmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYxNlN0cmluZyh1Ilx1MTY4
MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>
<flag name="commit-queue"
          id="485707"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457186</attachid>
            <date>2022-04-09 20:05:10 -0700</date>
            <delta_ts>2022-04-09 22:34:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409200509.patch</filename>
            <type>text/plain</type>
            <size>223948</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBmM2EyNzIzYzEyODMwZDJkMDkuLjE1
YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNlckNvbnRlbnRNYW5hZ2VyRGVzdHJv
eWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZy
b21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAg
ICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9MSUNZX0VSUk9SLCBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBzaG93IGluc3BlY3RvciBVUkw6IG5v
IHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBi
OTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRm
YzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xv
ci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2Vi
S2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
clN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsK
KyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldp
dGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICgh
d2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2Jk
MGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdv
cmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0
b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVu
dGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0
aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3Ry
aW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1m
ZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xp
ZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdw
ZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9w
dCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0g
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9h
ZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9
IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDgg
KzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFw
cCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBs
aWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJp
bmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0
aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmlu
c3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVj
dG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCmluZGV4IDgx
NzFlZjYyY2M3N2MwYjExMmZkZTYxYzkzNmNmM2IwZGZkN2E1ZjYuLjEzYjkwMjkyODc2NzU3MDgy
NmQxYTQ4NTlhYmRjMTViMzllMGJhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCkBA
IC04NCwxNCArODQsMTQgQEAgc3RhdGljIGJvb2wgaXNFR0xJbWFnZUF2YWlsYWJsZShib29sIHVz
ZUluZGV4ZWRHZXRTdHJpbmcpCiAgICAgICAgIEdMaW50IG51bUV4dGVuc2lvbnMgPSAwOwogICAg
ICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTlVNX0VYVEVOU0lPTlMsICZudW1FeHRlbnNpb25zKTsK
ICAgICAgICAgZm9yIChHTGludCBpID0gMDsgaSA8IG51bUV4dGVuc2lvbnM7ICsraSkgewotICAg
ICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKTsKKyAgICAgICAgICAgIFN0
cmluZyBleHRlbnNpb24gPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSk7CiAgICAgICAgICAgICBp
ZiAoZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8fCBleHRlbnNpb24gPT0gIkdMX09F
U19FR0xfaW1hZ2VfZXh0ZXJuYWwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFN0cmluZyBleHRlbnNp
b25zU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6
IGV4dGVuc2lvbnNTdHJpbmcuc3BsaXQoJyAnKSkgewogICAgICAgICAgICAgaWYgKGV4dGVuc2lv
biA9PSAiR0xfT0VTX0VHTF9pbWFnZSIgfHwgZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdl
X2V4dGVybmFsIikKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKaW5kZXggZmUwNGMx
ZmY0NDE2MWMwNzZmNTM3ZGE1MTNjYzJkNzE1Y2E5MDAzZS4uYmU5YmE0YzYwOTIwYjRmNzg4YTJh
YmM1OTA4ZDZkZmFjMDQ4ZjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29tbWFuZHNGb3JLZXl2YWwodW5zaWduZWQga2V5dmFs
LCB1bnNpZ25lZCBtb2RpZmllcnMpOwogCi0gICAgdm9pZCBhZGRQZW5kaW5nRWRpdG9yQ29tbWFu
ZChjb25zdCBjaGFyKiBjb21tYW5kKSB7IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmFwcGVuZChj
b21tYW5kKTsgfQorICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRvckNvbW1hbmQoY29uc3QgY2hhciog
Y29tbWFuZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKGNvbW1hbmQpKTsgfQogCiBwcml2YXRlOgogICAgIEd0a1dpZGdldCogbV9uYXRpdmVXaWRn
ZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggNDRjYmY3M2M2YWQx
NTVjZTI2MjllMDFhNDc0OThjMjUyOGNlYzQ2Yi4uN2IwNzk4MzhiMzdmZjU3YTI4NDk0N2VhYTlh
NzllYTg3OTY2YzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAt
NzMyLDcgKzczMiw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFn
ZSogd2ViUGFnZSkKIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6RGljdGlvbmFyeSYg
bWVzc2FnZSkKIHsKICNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IFN0
cmluZygiR2V0U25hcHNob3QiKSkgeworICAgIGlmIChtZXNzYWdlTmFtZSA9PSAiR2V0U25hcHNo
b3QiKSB7CiAgICAgICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSBzdGF0aWNf
Y2FzdDxTbmFwc2hvdE9wdGlvbnM+KHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5n
ZXQoIlNuYXBzaG90T3B0aW9ucyJfcykpLT52YWx1ZSgpKTsKICAgICAgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5nZXQoIkNhbGxiYWNr
SUQiX3MpKS0+dmFsdWUoKTsKICAgICAgICAgU25hcHNob3RSZWdpb24gcmVnaW9uID0gc3RhdGlj
X2Nhc3Q8U25hcHNob3RSZWdpb24+KHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5n
ZXQoIlNuYXBzaG90UmVnaW9uIl9zKSktPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JD
bGllbnRXUEUuY3BwCmluZGV4IDMzODRmYTI1OGMyMGY0NDZmMjEyZGFlMmMyNGRjOWQ4MTIyYmFk
MDEuLjc2ZTZjZWZlOTBkYzAwYmUzODRiMzU3ZmQ2MTkxZTZkZWFmYTQyMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xp
ZW50V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYg
ZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKIHsKLSAg
ICBTdHJpbmcgY29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBh
dXRvIGNvbW1hbmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2
ZW50KSk7CiAKICAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBmcmFt
ZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CkBAIC0xOTAsNyArMTkw
LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2
ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93
bihGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmKQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJldEtleUV2ZW50
KGV2ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKICAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dpbi9XZWJQYWdlV2luLmNwcAppbmRleCA3NjQ0M2E5NDI1NGFlNGZlOGU1OGY4MDdiYWE1
MjE1NmMzNjdkMTFkLi5jNzdmZjc4Y2QzY2Q5NjI3ZDFhZTdiOTMwYzgxNDU3MDk0NjQ1MjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5
Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQu
dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2
ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBh
dXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRL
ZXlFdmVudCgmZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5j
b21tYW5kKFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAK
ICAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7
CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0
IG1vZGUgdG8gZGVjaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nl
c3NpYmxlVGV4dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRl
eHRJbXBsLmNwcAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0
Li4zNWMyODk3YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYs
NyBAQCBIUkVTVUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZz
ZXQsIGxvbmcgZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFj
Y2Vzc2libGVUZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdU
Rjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0
ZXh0LW1vZGVsOmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFz
ZSgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN0YXRpc3RpY3MuY3BwCmluZGV4IGYxMzE2ZGU0NmMyMTM1YTZkMjZmYWI5ZDE0NGRlYjNm
ODFmMDg5MzguLjAxYTYxMmZkYTMyODlkOTY3Y2E5NjcyY2M0MjNlMWQzNWRhNTU5NzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAgLTE0OSw3
ICsxNDksNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0UHJvdGVjdGVk
T2JqZWN0VHlwZUNvdW50cyhfQ09NX091dHB0cl9vcHRfCiAgICAgSXRlcmF0b3IgZW5kID0ganNP
YmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3Vu
dE1hcDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVjdFR5cGVOYW1lcy0+YmVn
aW4oKTsgY3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgdHlwZUNvdW50TWFwLnNl
dChTdHJpbmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUpOworICAgICAgICB0eXBl
Q291bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5rZXkpLCBjdXJyZW50LT52
YWx1ZSk7CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0cyhBZG9wdENPTSwgQ09N
UHJvcGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50TWFwKSk7CiAgICAgcmVz
dWx0cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBI
UkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cyhfQ09N
X091dHB0cl9vcHRfIElQcm9wZXJ0eQogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0VHlwZU5h
bWVzLT5lbmQoKTsKICAgICBIYXNoTWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7CiAgICAg
Zm9yIChJdGVyYXRvciBjdXJyZW50ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7IGN1cnJl
bnQgIT0gZW5kOyArK2N1cnJlbnQpCi0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nIHsg
Y3VycmVudC0+a2V5IH0sIGN1cnJlbnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50TWFwLnNl
dChTdHJpbmc6OmZyb21MYXRpbjEoY3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUpOwogCiAg
ICAgQ09NUHRyPElQcm9wZXJ0eUJhZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3BlcnR5QmFn
PGludD46OmNyZWF0ZUluc3RhbmNlKHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMuY29weVJl
ZlRvKHR5cGVOYW1lc0FuZENvdW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAxYzdhZmQw
NTMxYTkyZjMyN2MzMzZiNjVmM2ExMmUwOTMyYTY4ZmQ2Li5iMjM5Mzc2MjQwZGM5ZDIzMDFmZTVj
NTk0YjcxNzQ0ZGU2ZTIyNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ1NCw3ICs0NTQs
NyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KEVs
ZW1lbnQqIGUsIEtleWJvYXJkRXZlbnQqIGtlKQogICAgICAgICBpZiAoZG9tRWxlbWVudCkgewog
ICAgICAgICAgICAgSURPTUhUTUxJbnB1dEVsZW1lbnQqIGRvbUlucHV0RWxlbWVudDsKICAgICAg
ICAgICAgIGlmIChTVUNDRUVERUQoZG9tRWxlbWVudC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lET01I
VE1MSW5wdXRFbGVtZW50LCAodm9pZCoqKSZkb21JbnB1dEVsZW1lbnQpKSkgewotICAgICAgICAg
ICAgICAgIFN0cmluZyBjb21tYW5kIHsgbV93ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkg
fTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvbW1hbmQgPSBTdHJpbmc6OmZyb21MYXRpbjEobV93
ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkpOwogICAgICAgICAgICAgICAgIC8vIFdlIGFs
bG93IGVtcHR5IGNvbW1hbmRzIGhlcmUgYmVjYXVzZSB0aGUgYXBwIGNvZGUgYWN0dWFsbHkgZGVw
ZW5kcyBvbiB0aGlzIGJlaW5nIGNhbGxlZCBmb3IgYWxsIGtleSBwcmVzc2VzLgogICAgICAgICAg
ICAgICAgIC8vIFdlIG1heSB3YW50IHRvIHJldmlzaXQgdGhpcyBsYXRlciBiZWNhdXNlIGl0IGRv
ZXNuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gc2VuZCBhbiBlbXB0eSBjb21tYW5kLgogICAgICAg
ICAgICAgICAgIGZvcm1EZWxlZ2F0ZS0+ZG9QbGF0Zm9ybUNvbW1hbmQoZG9tSW5wdXRFbGVtZW50
LCBCU3RyaW5nKGNvbW1hbmQpLCBraXQoZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKSwgJnJlc3VsdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmE5NTM3MjcyZjcyNmZlZDMzYzdi
ZjIyZWEzZWIzODhjMzk0Y2QxMS4uN2NlMjA3MTIwY2Q2Zjc2ZTBkYjcwZmRlYTQwZTE4MzNjYjU2
ZWRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzUwLDcgKzc1MCw3IEBA
IFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgQ2hpY2tlbkNh
dCB0byBpbmNsdWRlIENGTmV0d29yay9DRlVSTEVycm9yLmggdG8gZ2V0IHRoZXNlIHZhbHVlcwog
ICAgIC8vIEFsdGVybmF0aXZlbHksIHdlIGNvdWxkIGNyZWF0ZSBvdXIgb3duIGVycm9yIGRvbWFp
bi9jb2Rlcy4KLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21h
aW4pLCAtOTk5LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCIpKTsKKyAgICByZXR1
cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtOTk5LCByZXF1ZXN0
LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCJfcykpOwogfQogCiBSZXNvdXJjZUVycm9yIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdApAQCAtNzgwLDcgKzc4MCw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uCiAK
IFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJv
cihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKLSAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2Uu
dXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iKSk7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoU3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgp
LCBTdHJpbmcoIkZpbGUgZG9lcyBub3QgZXhpc3QuIl9zKSk7CiB9CiAKIFJlc291cmNlRXJyb3Ig
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDdmNTIxZGEwZmRhMjRhNTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzguLjc3MjRm
YjAwMmExYWEyODAzNmIyZjBmYjJjZDA0ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUVk
aXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50
eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZl
bnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1
dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtl
eUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNv
bW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAog
ICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsK
ICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQg
bW9kZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVj
dXRlZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMDAw
NWQwMTBkMzViYzZjNThjMTg2OWQxMWFjNzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQyNDg2MTQ0
MDU2Y2U4MzQ4ZjU5NTA5ZjU2ZGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0Nyw1IEBA
IFN0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRo
KCkKICAgICAgICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKGRhdGFi
YXNlRGlyZWN0b3J5KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFiYXNlRGly
ZWN0b3J5KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4zNDhkODVh
Yjk2ZGJiYWZmMWI0ZDZjNzM5MGExMzNlZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGlu
ZyBjb2RlIGJhc2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0
IGNoYXIqKSBwcml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SFRUUEhlYWRlckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNl
Y3JldFRva2VuKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3
ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFt
ZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0w
NC0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01l
cmdlLVF1ZXVlXSBDcmVhdGUgc2VwZXJhdGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9uCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMTk2NjhjY2Q3
NDliYmU5YTY4OGUwNjg0MzcwODhmZDM2NThhZjg2Li5jOGU4MzAyYmYyOTdhMzExNGRlMjAzYzM1
YjEyMzlmMTI1MzBkMTcyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVy
VHJlZS5jcHAKQEAgLTExNzUsMTAgKzExNzUsMTAgQEAgc3RhdGljIGJvb2wgaGFuZGxlQ29udHJv
bENvbW1hbmQoY29uc3QgY2hhciogY29tbWFuZCkKIHsKICAgICBpZiAoIXN0cmNtcCgiI0NIRUNL
IEZPUiBBQkFORE9ORUQgRE9DVU1FTlRTIiwgY29tbWFuZCkpIHsKICAgICAgICAgLy8gRHVtcFJl
bmRlclRyZWUgZG9lcyBub3Qgc3VwcG9ydCBjaGVja2luZyBmb3IgYWJhbmRvbmRlZCBkb2N1bWVu
dHMuCi0gICAgICAgIFN0cmluZyByZXN1bHQoIlxuIik7CisgICAgICAgIENTdHJpbmcgcmVzdWx0
KCJcbiIpOwogICAgICAgICBwcmludGYoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxuIik7CiAg
ICAgICAgIHByaW50ZigiQ29udGVudC1MZW5ndGg6ICV1XG4iLCByZXN1bHQubGVuZ3RoKCkpOwot
ICAgICAgICBmd3JpdGUocmVzdWx0LnV0ZjgoKS5kYXRhKCksIDEsIHJlc3VsdC5sZW5ndGgoKSwg
c3Rkb3V0KTsKKyAgICAgICAgZndyaXRlKHJlc3VsdC5kYXRhKCksIDEsIHJlc3VsdC5sZW5ndGgo
KSwgc3Rkb3V0KTsKICAgICAgICAgcHJpbnRmKCIjRU9GXG4iKTsKICAgICAgICAgZnByaW50Zihz
dGRlcnIsICIjRU9GXG4iKTsKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2
NDc1MDY4YzNkYWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVk
ZWMwZWJhYjkzMWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZT
dHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3Jp
Z2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwog
ICAgIEVYUEVDVF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3
IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RG
X0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFs
IHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9U
UlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwu
aW1wbCgpKTsKQEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1v
dmVSVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hh
dmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJp
bmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5h
bCB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7
CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMs
NyArNjMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5n
VHdvUmVmKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJp
bmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07Cisg
ICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRv
IGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdp
bmFsLT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwg
TW92ZVJWT3B0aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdp
bmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEy
MzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5h
bCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVY
UEVDVF9OVUxMKG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9D
cm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3Nz
VGhyZWFkQ29waWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBT
dHJpbmcgc3RyaW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07
CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0
byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2lu
YWwtPmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1
YWU1MDI2NGQwLi5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcg
KzEyMiw3IEBAIHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5n
RmlsZSkKIHsKICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURh
dGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVt
OjpNYXBwZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwg
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNU
X0ZBTFNFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlk
MjUzMjVjNTMwYzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlk
OTk4ZjQ4ZGNiZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9IZXhOdW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hl
eE51bWJlci5jcHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgoaW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxk
ZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEi
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGlu
dGVnZXIsIDIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEi
LCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwg
NCwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
RkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgoYnl0ZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2
ZTM4OWRiOWNhZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5
MTJiZTQ4MjYxNjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRl
c3QsIERlZmF1bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkK
IHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Iiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1
aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAz
KTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxk
ZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5n
KCkuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJh
Y3RlcnMoIiIsIDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyMiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
ZmcjIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIu
Y2hhcmFjdGVyczgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJY
WVoiKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgo
KSwgYnVpbGRlcjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2
Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9z
LCBidWlsZGVyKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIu
cmVzZXJ2ZUNhcGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1
aWxkZXJUZXN0LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7
CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19z
dHIoKSksIGJ1aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0Fw
cGVuZCkKIHsKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWls
ZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwg
ImFiY2QiLCAnZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODlhYmNkZSIsIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwg
IkIiLCAnQycsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZUFCQyIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nKCJBIl9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBT
dHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIkEiKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIl9zKSwgIkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFr
ZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252
ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0
IGluIHRoZSBleGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAn
ZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIs
IGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhC
aXQoKSk7CiAgICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVu
Z3RoKCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVs
bHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBi
dWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5n
QnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBj
YXBhY2l0eSBpZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IiksICJhYmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIu
cmVzZXJ2ZUNhcGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQo
KSk7CiAgICAgICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3Ro
KCkgKyAzKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNl
eWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxs
c2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQog
fQpAQCAtMTkyLDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcp
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2
Nzg5Iik7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCks
IGJ1aWxkZXIudG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmlu
Z0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmlu
ZygpLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRo
ZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmcoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWls
ZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJB
QkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcg
dGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBj
b250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRl
ci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAg
ICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkNERUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkNERUYiX3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAg
ICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyks
IHN0cmluZzEpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBU
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVy
LmNhcGFjaXR5KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3Ry
aW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwog
ICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
KTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0
IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAg
YnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmlu
ZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNh
cGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBz
dHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3Mp
LCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0
aGUgU3RyaW5nQnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAg
ICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAg
ICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9F
UShzdHJpbmcxLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiks
IHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYi
X3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE
RUYiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgp
OwpAQCAtMjYyLDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJl
c2VydmVDYXBhY2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxk
ZXIuY2hhcmFjdGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9
CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAg
VEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1
aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Iiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxk
ZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5s
ZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAg
IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1Rf
RVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2IiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1
aWxkZXIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIp
OwogfQpAQCAtMzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwp
CiAgICAgRVhQRUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCks
IDApKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9
IFN0cmluZygiYWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJj
Il9zKSk7CiAKICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2Vy
dmVDYXBhY2l0eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVy
MS5yZXNlcnZlQ2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxk
ZXIyKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMSA9PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIz
Il9zKSA9PSBidWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVY
UEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVy
MiAhPSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVy
Mik7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShi
dWlsZGVyMiAhPSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8v
IFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBi
dWlsZGVyMik7CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBU
b0F0b21TdHJpbmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIxMjMiKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0
cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVz
ZXJ2ZUNhcGFjaXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtU
b0ZpdCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAK
aW5kZXggYTc2MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2
Njc3NTM1ZjRiZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RG
LCBTdHJpbmdJbXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNU
KFdURiwgU3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcg
c3RyaW5nKCJUZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwog
ICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
LCAidGVzdCB0IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NF
UlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0
IHRleCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBB
U1NFUlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwg
InQiKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoU3RyaW5nKCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5
NjYxMmUxMWZjLi5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAK
QEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RG
LCBTdHJpbmdPcGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAg
U3RyaW5nIHN0cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0
b21TdHJpbmciKTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3Mg
fTsKIAotICAgIFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAg
IFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5n
VmlldyBzdHJpbmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgw
LCB3dGZTdHJpbmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdWaWV3LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVh
ZDA0Li5iYWY0ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBA
QCBURVNUKFdURiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJp
bmdWaWV3IG51bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6
ZW1wdHkoKTsKLSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAg
U3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2
aWV3V2l0aENoYXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RS
VUUodmlld1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0
LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAg
IFNVQ0NFRUQoKTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygi
aGVsbG8iKSk7CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxs
byJfcykpOwogICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwog
ICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQx
LDcgKzE0MSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9U
UlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygp
LCB7IH0pKTsKICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmll
dzo6ZW1wdHkoKS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8o
ImhlbG8iKTsKKyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxv
VmlldyhoZWxvKTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMo
KTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAg
ICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRl
cmF0b3IgPSBzYXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9y
LCAnbCcpOwotICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQo
IndlYmtpdCJfcyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJr
aXQpLmNvZGVQb2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9p
bnRzLmJlZ2luKCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4Mywx
MCBAQCBURVNUKFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENo
YXJhY3RlcnMpCiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBF
Q1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAg
ICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsK
LSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJ
KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxs
QVNDSUkoKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSku
aXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21M
YXRpbjEoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmll
dyhTdHJpbmc6OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVD
VF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVs
bG8iKSkpLmlzQWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwu
Y3BwCmluZGV4IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdh
ZjVkNzQzMTA1NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxD
b25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAK
ICAgICBFWFBFQ1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgp
LnRvU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVD
VF9FUSg4MDgwLCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1
c2VybmFtZSIpLCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQi
KSwga3VybC5wYXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIp
LCBrdXJsLnBhdGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJs
Lmxhc3RQYXRoQ29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwg
a3VybC5xdWVyeSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwu
dXNlcigpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dv
cmQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhD
b21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVl
cnkoKSk7CiAgICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRl
bnRpZmllcigpKTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFz
U3RyaW5nKQpAQCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0
ZXJhbCB1cmxBc1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0
KQogewogICAgIGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRA
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5k
ZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86
cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
KSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJf
cyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiks
IHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1s
P3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2lu
ZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0
cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3Mp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFu
ZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQo
KSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBs
ZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29t
OjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiYXNkZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2Rm
Oi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJM
LCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RG
X1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3Jl
YXRlVVJMKCJ3d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19Owor
ICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7
ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4
OCw2NyArMzg4LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnMpCiAgICAgCiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/Il9zKTsKICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3Jn
Lz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwg
dGVzdFZlY3RvcjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3Ms
ICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDUsIHVybDYpLCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBV
UkwgdXJsMTQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtl
eTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IxMzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJr
ZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMx
NCk7CiAgICAgCiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAi
dmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjE1MTYgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9
IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYp
LCB0ZXN0VmVjdG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRw
Oi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwx
MiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwx
Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjExMTIge3sia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3Ms
ICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAg
ICAKICAgICBVUkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQ
YWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkx
IiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkx
Il9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9z
IH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBV
UkwgdXJsMTkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtl
eTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5
MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIs
ICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMTkyMCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwg
eyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJf
cywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMo
dXJsMTksIHVybDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rl
c3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAi
PyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwyMSwgdXJsMjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7
IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0
ZXN0VmVjdG9yMjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAg
ICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0
VmVjdG9yMjMyNCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAi
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjcyOCB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVj
dG9yMjcyOCk7CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmc/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3Ms
ICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAg
IFVSTCB1cmwzMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAg
ICBVUkwgdXJsMzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3si
IiwgIj8ifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IzMTMyIHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1
ZXJ5UGFyYW1ldGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAg
VVJMIHVybDI1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAg
ICBVUkwgdXJsMjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0g
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7
IiIsICI/In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0
VmVjdG9yMjUyNiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdR
dWVyeVBhcmFtZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUw
MDFkMmE5NWNiZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIw
NDQ5YjVhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0
b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAg
LTg5NSw5ICs4OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdU
Rl9WZWN0b3IsIE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IG1hcDsKLSAgICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAg
ICBtYXAuc2V0KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0
KFN0cmluZyB7ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywg
InYxIl9zKTsKKyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJf
cywgInYzIl9zKTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVy
biBwYWlyLnZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V1RGU3RyaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5j
cHAKaW5kZXggYjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcy
ZWMwMGI3NzRmNGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYs
IFN0cmluZ0NyZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGlj
aXQgY29uc3RydWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0
aCgpKTsKICAgICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJp
bmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJh
bFZpYUFTQ0lJLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25z
dHJ1Y3Rpb24gc3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9t
TGl0ZXJhbFZpYUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJp
bmcgTGl0ZXJhbCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiks
IHN0cmluZ0Zyb21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRl
cmFsIiwgc3RyaW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRl
cmFsLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBz
dHJpbmdGcm9tTGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwi
X3MpLCBzdHJpbmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAg
LTcwLDcgKzcwLDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsK
ICAgICBTdHJpbmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVt
cHR5U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOwor
ICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNU
X1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykp
OwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAg
c3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVk
U3RyaW5nOwogCi0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmlu
Zy5jX3N0cigpKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGlu
MShleHBlY3RlZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNl
V2l0aExpdGVyYWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3Vi
bGUpCiAgICAgRVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfRkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9E
b3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBF
Q1RfRVEoMC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVF
KG9rKTsKIAotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAv
LyBmYWlsIGlmIHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmco
IngxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91
YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAg
IEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNw
YWNlcwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VR
KDEuMCwgU3RyaW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIgMSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAg
Ly8gaWdub3JlIHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAv
LyBGSVhNRTogVGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5
cyBndWFyYW50ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcg
dG8gcmV0dXJuIGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Iiku
dG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZv
aykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVD
VF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZh
bHVlcyBzdWNoIGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmlu
aXR5IikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3Mp
LnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRv
RG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5
IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJp
bmcoIm5hbiIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFu
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9E
b3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmlu
Z2hhc0luZml4U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5p
czhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwg
MikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChT
dHJpbmcoInN0IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5m
aXhTdGFydGluZ0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygi
VGVzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJp
dCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJU
ZSJfcywgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFy
dGluZ0F0KCJzdCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhh
c0luZml4U3RhcnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6
OmZyb21VVEY4KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6
ZnJvbVVURjgoIuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RG
LCBTdHJpbmdoYXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJv
bVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0i
KSwgMSkpOwogICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0lu
Zml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNU
X0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJp
bmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhT
dGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNF
KFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDAp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQo
U3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0
aW5nSGFzaCkKIHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAg
IFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uo
c3RyaW5nMS5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNI
YXNoKCkpOwogICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAg
VEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVF
cXVhbFVDaGFyQXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmlu
ZyBzdHJpbmcxKCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsK
ICAgICBFWFBFQ1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAn
YScsICdiJyB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1
MmQ0YzhlYzAxYjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVu
c2lvblRlc3QsIFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9
Il9zLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2sp
OwogCiAgICAgY29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBh
dHRlcm5TdGF0dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1
cyhTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVz
KCJcXHhmZiJfcywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0
dXM6Ok5vbkFTQ0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9z
LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
aW5kZXggOWUyMGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJi
NTFhMDliMDA4NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAg
Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNv
bnN0IFN0cmluZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0
ZXh0IGZvciB0aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNl
ZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBT
dHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3Ry
aW5nIEZpbGVNb25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9y
IHRoZSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRh
KCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZp
bGVNb25pdG9yVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAK
aW5kZXggNzcwYjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFh
NDljODdlMzY2NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0
LDkgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3Ms
CiAgICAgICAgICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykp
Il9zLAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5n
IHsgbm9uQVNDSUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFT
Q0lJUXVvdGVkUGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFT
Q0lJQ29tbWVudCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBh
aXJJbkNvbW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQ
YWlySW5RdW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1
LDcgKzk1LDcgQEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChc
YSkiX3MsCiAgICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChj
KSkiX3MsCi0gICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpm
cm9tTGF0aW4xKGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNw
cAppbmRleCAxNDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYy
ZGE5ZTVhODA5ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBA
QCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2Rpbmcs
IFNldEFuZEdldFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldl
YkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVy
OjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0
U2ltcGxlVmFsdWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29y
ZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQog
CiBURVNUKEtleWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0
MzJjYTc4ZGFkZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEw
NmEzZGZjYmNhNDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQ
dWJsaWNTdWZmaXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VR
KFN0cmluZyh1dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3Mjgu
anAiKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbihTdHJpbmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20u
dGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3
dy5jb20uY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJk
b21haW4udGVzdC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJs
LnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiMTI3LjAuMC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29t
LnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigid3d3LmNvbS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJzdWJkb21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJs
LnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
InN1YmRvbWFpbi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpm
MGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYw
YW82NGEudHciX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50
dyJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0
YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJp
bmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9F
UShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigicjQtLS1hc2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1h
c2RmLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJyNC0tLWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQt
LS1hc2RmLmNvbSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5n
KGJpZGlyZWN0aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFt
cGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1Q
bGUuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImxvY2FsaG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3Qi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0
LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJleGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNV
Qi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhv
c3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4x
KCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4u
Il9zKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9QdXNoRGF0YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1
c2hEYXRhYmFzZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNh
YmZkMy4uYTYyNDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAg
LTQzMiw4ICs0MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAg
ICAgICAgc25wcmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5v
cmcvdGVzdC8lZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3Bp
YyksICJ0b3BpY18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsg
c2NvcGUgfTsKLSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07Cisg
ICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAg
ICAgICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAg
ICAgICAgICAgZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkg
ewogICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBl
ZjQxNGJmNzQ5NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2
ZGEzYzg1ZWI1Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVX
aXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIp
KTsKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZG
aWxlKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZm
ZXIpOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVy
VGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIg
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7
CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5z
aXplKCkgPT0gc3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0
RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZl
ci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50
ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29u
dGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVu
dGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5Rmls
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJz
ZXJUZXh0RW5jb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VS
TFBhcnNlclRleHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0
YzE1MmMyZGRhOWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRl
eHRFbmNvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VS
TFBhcnNlclRleHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFy
c2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYx
NlN0cmluZyh1Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9z
LCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMl
OUYlRjAlOUYlOTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUi
aHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRl
c3RUYWJzVmFsdWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBs
YXRpbjEoU3RyaW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJs
YXRpbjEiKTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMi
X3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhv
c3QiX3MsIDAsICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygp
LCAiaHR0cDovL2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJM
KCJodHRwOi8vaG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmco
KSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3Ry
aW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hv
c3QvP1x0cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJo
dHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFy
c2VyVGV4dEVuY29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDov
L2hvc3QvP3F1ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Qv
PyJfcywgJnVucmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmlu
ZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
dHRwOi8vaG9zdC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJp
bmcoIklTTy04ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04
ODU5LTEiKTsKICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywg
MHg0MzAsIDB4NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0
L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDEl
OTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEi
X3N9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVt
bGF1dHMpLCAmaXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0
cmluZygpLCAid3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNw
cAppbmRleCAyZGQ3ZTRhZTdhMDFjMjllZjE0YmU4OWZlZGFiMjg1ZDk3NmY5ODAzLi4xYTViNWQ2
YWQ4ZGQxNzU4OTY4OTk0NGJkYmM5NDYzNjgzN2U4MTY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHN0YXRpYyB2b2lkIGFzc2VydFVz
ZXJBZ2VudEZvclVSTEhhc0Nocm9tZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0g
ICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKCBTdHJpbmcg
eyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJM
KFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJp
bmcuY29udGFpbnMoIkNocm9tZSIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlu
cygiU2FmYXJpIikpOwpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdl
bnRGb3JVUkxIYXNDaHJvbWVCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMg
dm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNo
YXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVS
TChVUkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVz
ZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVD
VF9GQUxTRSh1YVN0cmluZy5jb250YWlucygiQ2hyb21lIikpOwogICAgIEVYUEVDVF9GQUxTRSh1
YVN0cmluZy5jb250YWlucygiU2FmYXJpIikpOwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9p
ZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIq
IHVybCkKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1R
dWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRV
c2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5n
ID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7
CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiTWFjaW50b3NoIikpOwogICAg
IEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWMgT1MgWCIpKTsKQEAgLTcyLDcgKzcy
LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWly
ayhjb25zdCBjaGFyKiB1cmwpCiAvLyB0aGF0IHRoZSBzdGFuZGFyZCB1c2VyIGFnZW50IHNob3Vs
ZCBiZSB1c2VkLikKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0VtcHR5UXVp
cmsoY29uc3QgY2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNl
ckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9
IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwog
ICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5pc051bGwoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJh
Y2tlclRlc3QubW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3
MC4uN2ZjN2VmNDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRl
c3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFi
YXNlVHJhY2tlclRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIs
IERlbGV0ZU9yaWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhl
IG9yaWdpbidzIGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBE
YXRhYmFzZXMgdGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAg
TlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURp
cmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBh
dGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNr
ZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFz
ZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3Jp
Z2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAg
VEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlz
dCkKICAgICAvLyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRo
ZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcg
QEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFz
ZUZhaWxzKQogICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5m
b3JtYXRpb24gZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFi
bGVzLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJX
aXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcg
KzIzNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0Vu
dHJ5SW5EYXRhYmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxs
IGJlIHJlbW92ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFi
YXNlIHNob3VsZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7
Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0
cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2Vy
ID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVj
dG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Vi
a2l0Lm9yZyJfcywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tl
ciwgRGVsZXRlRGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIg
dGhlIGRlbGV0aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9t
IGRpc2ssIGFuZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJh
c2VzIHRhYmxlLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpj
cmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAt
MzE0LDcgKzMxNCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5E
YXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0
byBkZWxldGUgYSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBX
ZSBzaG91bGQgc3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBE
YXRhYmFzZXMgdGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRh
YmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmlu
ZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxs
ZW5nZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdl
Lm1tCmluZGV4IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRh
MzA2Yjc4NjA1M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQx
LDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlL
MVRYdExsV04wNnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZ
SktkWCIKICAgICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZP
b1NrUWcxOVZTL1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VS
eWlybUcvdEk2Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRI
QmdwSVRQNmx2NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFW
OXoiX3MpOwogCiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlG
Z0RDQ0EyZ0NDUUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVC
aE1DIgpAQCAtMTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElk
ZW50aXR5MigpCiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1G
MUVndjk0Y3JEMXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempU
anhpbWJJaVdtMnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0
QUsyaFdiQUN1NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0g
ICAgIm1JL2hIYnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5
cTFDeCtXQi92MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERl
Y29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0g
YmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5k
ZXggNmMzY2EzZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJl
OWE1MzRiNjg4ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgy
LDcgKzI4Miw3IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0
VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEu
MVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byByZXF1ZXN0MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBU
b2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tl
biIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0
eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmco
ImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBzdGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAs
NyArMzIwLDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRU
b2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVz
dDQuZGF0YSgpLCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFy
dHk6OlNvdXJjZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0
aW5hdGlvbl9zZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291
cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRp
b25fc2VjcmV0X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0
NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lk
IHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkg
c2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0
byB0b2tlblZlY3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRh
IGFsbG9jXSBpbml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVj
dG9yLT5zaXplKCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5n
KCJzb3VyY2Vfc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9z
ZWNyZXRfdG9rZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2Ug
PyBTdHJpbmcoInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVz
dGluYXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0
aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBy
ZXF1ZXN0NFN0cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0KaW5kZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJl
ODAwODg3YzliYzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRlQmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJ
c1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVS
ZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJ
c1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNp
ZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJj
ZUNPRVAsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5h
dGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0
IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNp
bmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBzb3VyY2VIZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3Ms
ICJ0ZXh0L2h0bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFk
ZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09Q
KSk7CisgICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSJfcywgc291cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhl
YWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNl
Q09FUCkpOworICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVy
LVBvbGljeSJfcywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBk
ZXN0aW5hdGlvbkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1U
eXBlIl9zLCAidGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAg
ICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywg
U3RyaW5nKGRlc3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBp
ZiAoZGVzdGluYXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9z
cy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7Cisg
ICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xp
Y3kiX3MsIGRlc3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVz
cG9uc2UoV1RGTW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRU
UFNlcnZlciBzZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhU
VFBSZXNwb25zZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0Mjcs
OCArNzQyNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hh
ciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBh
dXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9v
bCBzb3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJj
bXAoc291cmNlQ09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNv
dXJjZUNPRVAsICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRp
b25DT09QLCAic2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0
aW5hdGlvbkNPRVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJj
ZUNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVD
cm9zc09yaWdpbklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAm
JiBkZXN0aW5hdGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShz
b3VyY2VTaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNy
b3NzT3JpZ2luSXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAg
ICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZv
aWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBj
aGFyKiBzb3VyY2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5U
b0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW40KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
InVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAi
c2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
ICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1
bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsg
fSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNh
ZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25l
Il9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5B
bGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVp
cmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2lu
Il9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmln
aW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
ICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJf
cywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAv
LyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3
YXAgYmVjYXVzZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVj
YXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Olllcywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09P
UEFuZENPRVBTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3
YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5k
IENPRVA9cmVxdWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUt
Y29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRp
cmVjdCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
WWVzLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0K
IAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAog
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMp
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgidW5zYWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUi
X3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9D
T09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJf
cywgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9
LCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iX3MsIHsgfSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
dW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAi
dW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAi
dW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAi
dW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRv
Q09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1
aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJl
LWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
bnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJy
ZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFs
bG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxs
cHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsg
fSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwg
bnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25l
Il9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmll
dykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0
YmJhM2U2NjAyMTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2Vydmlj
ZVdvcmtlcnMsIENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7
CiAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4m
JikgewotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVu
dC1UeXBlIiwgInRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7Cisg
ICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBl
Il9zLCAidGV4dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNo
YXI+JiYpIHsKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25z
ZSh7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50
UnVsZUxpc3RXb3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAi
YXBwbGljYXRpb24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlw
dCkuc2VyaWFsaXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
LnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFy
KilsYXN0UmVxdWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5z
aXplKCkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRU
UFJlc3BvbnNlKCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2
YmU1OTZlMTgwZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBh
cmVudEZyYW1lW10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0
bWwnPjwvaWZyYW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBj
b25zdGV4cHIgYXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScg
c3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIg
YXV0byBzdWJGcmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQn
PiIKICI8c2NyaXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10g
PQogIiAgICB9OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAi
PC9zY3JpcHQ+IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RTU0wuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wu
Y3BwCmluZGV4IDA1NDA1NTM3YTc1NzQ4ZDBmZWZmOGRmNThkNDY1MDZiMDZkMjE1YWUuLmQwMjBk
NmU4ZWM4N2E3MzU3MDRhZjVmNWJmMmJhODI0ZmRmYjhkNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMo
R19PQkpFQ1QoY2VydGlmaWNhdGUpKTsKICAgICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGNlcnRpZmlj
YXRlOwogICAgICAgICBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsKLSAgICAgICAgbV9mYWlsaW5n
VVJMID0gVVJMKFN0cmluZyB7IGZhaWxpbmdVUkkgfSk7CisgICAgICAgIG1fZmFpbGluZ1VSTCA9
IFVSTChTdHJpbmc6OmZyb21MYXRpbjEoZmFpbGluZ1VSSSkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggYjdjMWNjMWM1YzUzYjk3MDZlZGQ0YmM0Zjc3MmNh
Mjk2M2QxMzQyZi4uZDg1NTA4YTVkMzJlNmE3NzA1YzMwZTdlZWU5ODZhODgxZTE0MDRkZSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVu
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNs
aWVudC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCB3
aW5kb3dQcm9wZXJ0aWVzTm90aWZ5Q2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqIHBhcmFt
U3BlYywgVUlDbGllbnRUZXN0KiB0ZXN0KQogICAgIHsKLSAgICAgICAgdGVzdC0+bV93aW5kb3dQ
cm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nIHsgZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBhcmFt
U3BlYykgfSk7CisgICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0
cmluZzo6ZnJvbUxhdGluMShnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSkpOwogICAg
IH0KIAogICAgIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB2aWV3Q3JlYXRlQ2FsbGJhY2soV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbiwgVUlD
bGllbnRUZXN0KiB0ZXN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5kZXggYzU2OTAyYTIyOTcwNzIy
ZDNjYzExNmJiYTMxMGRkYjZiNDNkZTg5Yi4uN2RlZDY2Y2U2NmRjNWE0YWEzMzIzNzEwOTBhMGE0
OTBlOThlMzc1OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgc3Rh
dGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvblBhZ2VJRChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKICAgICAvLyBSZWdpc3RlciBhIGN1c3RvbSBVUkkgc2NoZW1lIHRvIHRlc3QgaGlz
dG9yeSBuYXZpZ2F0aW9uLgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2No
ZW1lKHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSwgImZvbyIsCiAgICAgICAgIFtdKFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyKSB7Ci0gICAgICAgICAgICBVUkwgdXJs
ID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0
KSB9KTsKKyAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgICAgICAgICAgR1Jl
ZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0
X3N0cmVhbV9uZXcoKSk7CiAgICAgICAgICAgICBjaGFyKiBodG1sID0gZ19zdHJkdXBfcHJpbnRm
KCI8aHRtbD48aGVhZD48dGl0bGU+JXM8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1s
PiIsIHVybC5ob3N0KCkgPT0gImhvc3Q1IiA/ICJUaXRsZTUiIDogIlRpdGxlNiIpOwogICAgICAg
ICAgICAgZ19tZW1vcnlfaW5wdXRfc3RyZWFtX2FkZF9kYXRhKEdfTUVNT1JZX0lOUFVUX1NUUkVB
TShpbnB1dFN0cmVhbS5nZXQoKSksIGh0bWwsIHN0cmxlbihodG1sKSwgZ19mcmVlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGE0M2M5M2VhOTg0YzNhNmZiNWZiNDA5YTIwN2JjN2Y4
NjU3M2NkN2QuLjMxMjA3OGY3Y2E0YWE5MDc5ZGI0NjgzMDk0ODA1ZWFiZWY5MjM4ZmUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Q29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogU3Ry
aW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKIHsKLSAgICBT
dHJpbmcgYmFzZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIik7
CisgICAgU3RyaW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1
Nzg5MCJfcyk7CiAgICAgdW5zaWduZWQgYmFzZUxlbmd0aCA9IGJhc2VTdHJpbmcubGVuZ3RoKCk7
CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEy
ZjBlYTM2ZTE5N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdh
MDAyNzI4Mjc4NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1Qo
V2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5
TGluayh3ZWJWaWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVS
TEZyb21QYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFi
c29sdXRlU3RyaW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8iX3MpLCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRN
ZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3
MWQyODkxNWZlMmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQw
Njg2NGUzYjQwMDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgV2ViVmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNo
b3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0
b3I6QCJhIl07CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAg
IEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3Ry
aW5nKHRleHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dFRvVVJMQ3Jhc2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdj
NzFjMGU2MTBhMWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWEx
YzFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyAr
NjQsNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcg
KiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiUEFTUyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVy
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkw
MjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3
MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2
ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRz
aGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAg
ICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAg
ICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5l
Y3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0
Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFk
ZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVw
Z3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJT
b2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVz
cG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRs
ZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRU
UFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGha
aU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpk
NFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIK
ICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NN
bzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAg
ICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29k
ZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAg
IHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBA
IFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJp
SEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURs
blQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFE
eFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVt
RWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0
RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09
Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5j
b2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRU
ZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktp
dFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDI4MDM0MTE0MGYwMmY4NGY3OTQ5NGVlYzRiN2UzNmIxMWMw
OTlkODMuLjhkZmE0ZTIzZjRlNDkwMjUyYjM5YTRiNjY3ZmFiOTMyMjVjZGFjZjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RT
ZXJ2ZXIuY3BwCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6
OmdldFdlYlNvY2tldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsKICAgICBn
X2Fzc2VydF9mYWxzZShtX2Jhc2VXZWJTb2NrZXRVUkwuaXNOdWxsKCkpOwogICAgIGdfYXNzZXJ0
X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycpOwotICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29j
a2V0VVJMLCBTdHJpbmcgeyBwYXRoICsgMSB9KS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0
aGUgbGVhZGluZyBzbGFzaC4KKyAgICByZXR1cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVSTCwgU3Ry
aW5nOjpmcm9tTGF0aW4xKHBhdGggKyAxKSkuc3RyaW5nKCkudXRmOCgpOyAvLyBJZ25vcmUgdGhl
IGxlYWRpbmcgc2xhc2guCiB9CiAKIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0VVJJRm9y
UGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewotICAgIHJldHVybiBVUkwobV9iYXNlVVJM
LCBTdHJpbmcgeyBwYXRoIH0pLnN0cmluZygpLnV0ZjgoKTsKKyAgICByZXR1cm4gVVJMKG1fYmFz
ZVVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGgpKS5zdHJpbmcoKS51dGY4KCk7CiB9CiAKIHVu
c2lnbmVkIFdlYktpdFRlc3RTZXJ2ZXI6OnBvcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMmE4ODUy
NzE0YWVmZjFhMjE5ZDE3ZGE1MmY4ZTU3ZTdlYjY1ZTkxOC4uNDJmYzBiNGYxM2MxNGFmNDY0OWM2
Njg1MTIzZjM2MTAxMGUyZmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0xODUsMTEgKzE4NSwxMSBAQCBzdGF0
aWMgUmVmPEpTT046Ok9iamVjdD4gdG9KU09OT2JqZWN0KEdWYXJpYW50KiB2YXJpYW50KQogICAg
IHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUp
KSB7CiAgICAgICAgIGNvbnN0IEdWYXJpYW50VHlwZSogdHlwZSA9IGdfdmFyaWFudF9nZXRfdHlw
ZSh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUs
IEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2Jq
ZWN0KFN0cmluZyB7IGtleSB9LCB0b0pTT05PYmplY3QodmFsdWUpKTsKKyAgICAgICAgICAgIGpz
b25PYmplY3QtPnNldE9iamVjdChTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgdG9KU09OT2JqZWN0
KHZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwo
dHlwZSwgR19WQVJJQU5UX1RZUEVfU1RSSU5HKSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNl
dFN0cmluZyhTdHJpbmcgeyBrZXkgfSwgU3RyaW5nIHsgZ192YXJpYW50X2dldF9zdHJpbmcodmFs
dWUsIG51bGxwdHIpIH0pOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmlu
Zzo6ZnJvbUxhdGluMShrZXkpLCBTdHJpbmc6OmZyb21MYXRpbjEoZ192YXJpYW50X2dldF9zdHJp
bmcodmFsdWUsIG51bGxwdHIpKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50
X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfRE9VQkxFKSkKLSAgICAgICAgICAgIGpz
b25PYmplY3QtPnNldERvdWJsZShTdHJpbmcgeyBrZXkgfSwgZ192YXJpYW50X2dldF9kb3VibGUo
dmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmc6OmZyb21M
YXRpbjEoa2V5KSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKICAgICB9CiAgICAgcmV0
dXJuIGpzb25PYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0
ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXgg
Y2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJk
MzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2Vi
S2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWlu
LmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3Rh
dGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmlu
ZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBh
TnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0
eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAg
U3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAot
ICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCog
YW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2
Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457191</attachid>
            <date>2022-04-09 22:34:53 -0700</date>
            <delta_ts>2022-04-10 13:01:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220409223452.patch</filename>
            <type>text/plain</type>
            <size>224901</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5
N2NiZTI1MDI2NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAg
IC8vIENvbnN0cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJt
aW5hdGVkIHNvdXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFy
Kik7CiAKLSAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAv
LyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yg
ZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8v
IEZJWE1FOiBNYWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3Rl
cnMpOwotCiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1w
bC4KQEAgLTM0Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dF
bXB0eUVudHJpZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9y
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3Ry
aW5nPiBzcGxpdEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8v
IFRoaXMgaXMgaW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVU
RjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAKaW5kZXggYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2
MWY3OWI1YzVhOTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5
cyB0aGUgc2FtZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0g
ICAgU3RyaW5nIGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7Cisg
ICAgYXV0byBsb2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19D
VFlQRSwgbnVsbHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJf
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2
Y2YxZjQxOWQ0MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2
ZTEyZTU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzks
NyBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RF
QlVHIGlzIG5vdCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhh
dCBtYW55IGxvZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7
CiAjZW5kaWYKIAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQz
MjhmNmFmZDVhMjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uYTQyZmYzZmRlYWVhZjgwMDYw
NzA1YTI3NTY3NmQ0ZWNkZmU3MGY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hh
bm5lbEV2ZW50PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVs
RXZlbnQoRG9jCiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tl
dExpZmVUaW1lID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9
IG1heFJldHJhbnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0
KCkpOworICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21VVEY4KHByb3RvY29sLmdldCgp
KTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBuZWdvdGlhdGVkOwogICAgIGluaXQuaWQgPSBpZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAppbmRleCAyOWUy
NTU3NjRlYTM1ZjEyNGUxYzliZGExM2Y5ODM1OTBhMDgxMmI3Li5lMTY0NzBiOGE0MjlkM2E4NTJj
NGQ3YmIxYjY1ZjFlYjQzYTAyNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YUVuZHBvaW50LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxSVENTZHBUeXBlLCBTdHJpbmc+PiBmZXRjaERlc2NyaXB0aW9uKEdzdEVsZW1lbnQq
CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcFN0cmluZyhnc3Rfc2RwX21lc3NhZ2VfYXNfdGV4
dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgR1NUX1RSQUNFX09CSkVDVCh3ZWJydGNCaW4sICIl
cy1kZXNjcmlwdGlvbiBTRFA6ICVzIiwgbmFtZSwgc2RwU3RyaW5nLmdldCgpKTsKLSAgICByZXR1
cm4geyB7IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0
cmluZyB7IHNkcFN0cmluZy5nZXQoKSB9IH0gfTsKKyAgICByZXR1cm4geyB7IGZyb21TZXNzaW9u
RGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbi5nZXQoKSksIFN0cmluZzo6ZnJvbUxhdGluMShz
ZHBTdHJpbmcuZ2V0KCkpIH0gfTsKIH0KIAogc3RhdGljIEdzdFdlYlJUQ1NpZ25hbGluZ1N0YXRl
IGZldGNoU2lnbmFsaW5nU3RhdGUoR3N0RWxlbWVudCogd2VicnRjQmluKQpAQCAtNDU2LDcgKzQ1
Niw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8o
R3N0U0RQTWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9tZWRpYUZvck1pZC5zZXQoU3RyaW5nIHsgbWlkIH0sIGdfc3RyX2VxdWFs
KG1lZGlhVHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
IDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOworICAgICAgICBtX21lZGlhRm9y
TWlkLnNldChTdHJpbmc6OmZyb21MYXRpbjEobWlkKSwgZ19zdHJfZXF1YWwobWVkaWFUeXBlLCAi
YXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICAgICAgLy8gaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvLS9tZXJnZV9yZXF1ZXN0cy8x
OTA3CiAgICAgICAgIGlmIChzZHBNZWRpYUhhc0F0dHJpYnV0ZUtleShtZWRpYSwgImljZS1saXRl
IikpIHsKQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmFk
ZFJlbW90ZVN0cmVhbShHc3RQYWQqIHBhZCkKICAgICBhdXRvIHNkcFN0cmluZyA9IG1ha2VTdHJp
bmcoc2RwLmdldCgpKTsKIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG5hbWUoZ3N0X3BhZF9nZXRf
bmFtZShwYWQpKTsKLSAgICBTdHJpbmcgbGFiZWwobmFtZS5nZXQoKSk7CisgICAgYXV0byBsYWJl
bCA9IFN0cmluZzo6ZnJvbUxhdGluMShuYW1lLmdldCgpKTsKICAgICBhdXRvIGtleSA9IG1ha2VT
dHJpbmcoIm1zaWQ6Iik7CiAgICAgYXV0byBsaW5lcyA9IHNkcFN0cmluZy5zcGxpdCgnXG4nKTsK
ICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5lcykgewpAQCAtMTA4NSw5ICsxMDg1LDkgQEAgdm9p
ZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoR1VuaXF1ZVB0cjxHc3RXZWIKIAogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNkcChnc3Rf
c2RwX21lc3NhZ2VfYXNfdGV4dChkZXNjcmlwdGlvbi0+c2RwKSk7CiAgICAgICAgIGlmIChtX2lz
SW5pdGlhdG9yKQotICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2Zm
ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9tTGF0aW4xKHNk
cC5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nIHsgc2RwLmdldCgpIH0pOworICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmlu
Zzo6ZnJvbUxhdGluMShzZHAuZ2V0KCkpKTsKICAgICB9KTsKIH0KIApAQCAtMTEyNSw3ICsxMTI1
LDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkK
ICAgICAgICAgaWYgKCFyZWNlaXZlciB8fCAhbWlkKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RG
OjptYWtlVW5pcXVlPEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJy
ZW50KSksIG1fbWVkaWFGb3JNaWQuZ2V0KFN0cmluZyB7IG1pZC5nZXQoKSB9KSk7CisgICAgICAg
IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKFdURjo6bWFrZVVu
aXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUoY3VycmVudCkpLCBt
X21lZGlhRm9yTWlkLmdldChTdHJpbmc6OmZyb21MYXRpbjEobWlkLmdldCgpKSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAKaW5kZXggZTc3OGY2ZDRmMGMwYjQ2NzgyMzBjNjJjZDY2MDJhOGU5YzYxM2ZiYS4u
NWE5MzJiMWI2YzY5ZWY1Y2YxOTk2ZmMzNDdmZDJhZDNiMmVlNTQ1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJh
bnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBAIC03OSw3
ICs3OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ6Om1pZCgpCiB7
CiAgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBtaWQ7CiAgICAgZ19vYmplY3RfZ2V0KG1fcnRjVHJh
bnNjZWl2ZXIuZ2V0KCksICJtaWQiLCAmbWlkLm91dFB0cigpLCBudWxscHRyKTsKLSAgICByZXR1
cm4gU3RyaW5nIHsgbWlkLmdldCgpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMSht
aWQuZ2V0KCkpOwogfQogCiB2b2lkIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6c3Rv
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXgg
ZGNmN2FkMWU4YzcwOGFhZmNlZTVjOTBmMDY5MDM0MjFlYzUxYWYwNS4uYzZjMmZiNzU1MDhhNDMy
Zjc3NGVlNjlhOGM2OWM3OTg5YTFmYjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clN0YXRzQ29sbGVjdG9yLmNwcApAQCAtNDMsMTUgKzQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBmaWxsUlRDU3RhdHMoUlRDU3RhdHNSZXBvcnQ6OlN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3Ry
dWN0dXJlCiAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwgInRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQogICAgICAgICBzdGF0
cy50aW1lc3RhbXAgPSB0aW1lc3RhbXA7Ci0gICAgc3RhdHMuaWQgPSBTdHJpbmcgeyBnc3Rfc3Ry
dWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiaWQiKSB9OworICAgIHN0YXRzLmlkID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIp
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENSVFBTdHJlYW1TdGF0cyhSVENTdGF0
c1JlcG9ydDo6UnRwU3RyZWFtU3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKIHsKICAgICBmaWxsUlRDU3RhdHMoc3RhdHMsIHN0cnVjdHVyZSk7CiAKLSAgICBzdGF0
cy50cmFuc3BvcnRJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1
cmUsICJ0cmFuc3BvcnQtaWQiKSB9OwotICAgIHN0YXRzLmNvZGVjSWQgPSBTdHJpbmcgeyBnc3Rf
c3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMtaWQiKSB9OworICAgIHN0YXRz
LnRyYW5zcG9ydElkID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmlu
ZyhzdHJ1Y3R1cmUsICJ0cmFuc3BvcnQtaWQiKSk7CisgICAgc3RhdHMuY29kZWNJZCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAiY29kZWMt
aWQiKSk7CiAKICAgICB1bnNpZ25lZCB2YWx1ZTsKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
dWludChzdHJ1Y3R1cmUsICJzc3JjIiwgJnZhbHVlKSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgZmlsbE91dGJvdW5kUlRQU3RyZWFtU3RhdHMoUlRDU3RhdHNSZXBvcnQ6
Ok91dGJvdW5kUnRwU3RyZWFtUwogICAgICAgICBzdGF0cy5uYWNrQ291bnQgPSBuYWNrQ291bnQ7
CiAKICAgICBpZiAoY29uc3QgY2hhciogcmVtb3RlSWQgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJp
bmcoc3RydWN0dXJlLCAicmVtb3RlLWlkIikpCi0gICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3Ry
aW5nIHsgcmVtb3RlSWQgfTsKKyAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmc6OmZyb21M
YXRpbjEocmVtb3RlSWQpOwogCiAgICAgLy8gRklYTUUKICAgICAvLyBzdGF0cy50YXJnZXRCaXRy
YXRlID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA2YTE2
MzZjNmRkYjZlNmZiNTk1YThjNWQyZmUyMGJkNzM3NDYxYTQ3Li5iNzA2MzA3MjZmM2NjMGFhMTFk
NzNjOWNiNzZhMjI1NjFkZGEzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRD
VXRpbHMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGlubGluZSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgdG9SVENFbmNvZGluZ1BhcmFtZXRlcnMoY29uc3QgR3N0U3RydWN0dXIKICAg
ICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludDY0KHJ0Y1BhcmFtZXRlcnMsICJtYXgtZnJhbWVy
YXRlIiwgJm1heEZyYW1lcmF0ZSkpCiAgICAgICAgIHBhcmFtZXRlcnMubWF4RnJhbWVyYXRlID0g
bWF4RnJhbWVyYXRlOwogCi0gICAgcGFyYW1ldGVycy5yaWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywgInJpZCIpIH07CisgICAgcGFyYW1ldGVycy5y
aWQgPSBTdHJpbmc6OmZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhydGNQYXJhbWV0
ZXJzLCAicmlkIikpOwogCiAgICAgZG91YmxlIHNjYWxlUmVzb2x1dGlvbkRvd25CeTsKICAgICBp
ZiAoZ3N0X3N0cnVjdHVyZV9nZXRfZG91YmxlKHJ0Y1BhcmFtZXRlcnMsICJzY2FsZS1yZXNvbHV0
aW9uLWRvd24tYnkiLCAmc2NhbGVSZXNvbHV0aW9uRG93bkJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggYjU4NmZjN2FiNTk1NDk4NGQ3NzFmYzNhNWE1ZDg0OTNiZjAzNmJkMy4uMDJmMDBkZTQxYWEx
ZTA3ZDNiMjFlMGY3OGJiMDc1ZDhlYjk1OGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTE5MDQs
NyArMTkwNCw3IEBAIEdDR0xlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoR0NHTGVudW0gdGFyZ2V0KQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKICAgICBHQ0dMZW51bSByZXN1bHQgPSB0YXJnZXRG
cmFtZWJ1ZmZlci0+Y2hlY2tTdGF0dXMoJnJlYXNvbik7CiAgICAgaWYgKHJlc3VsdCAhPSBHcmFw
aGljc0NvbnRleHRHTDo6RlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgU3RyaW5nIHN0
ciA9ICJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0YXR1czoiICsgU3RyaW5nKHJlYXNvbik7Cisg
ICAgICAgIFN0cmluZyBzdHIgPSBtYWtlU3RyaW5nKCJXZWJHTDogY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1czogIiwgcmVhc29uKTsKICAgICAgICAgcHJpbnRUb0NvbnNvbGUoTWVzc2FnZUxldmVsOjpX
YXJuaW5nLCBzdHIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCmluZGV4IDNhZDM3
OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQuLmMxNTFkZmY1MjU5MGUzYmU5MjE3
NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9z
b3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3Nv
dXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMgPSBhZG9wdEdSZWYoc3RhdGljX2Nh
c3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKHRhc2ssICZlcnJvci5vdXRQdHIo
KSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAgICAgICAgbG9hZGVyLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsK
KyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB1cmws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2Fk
R1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0
IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0KCksICZkYXRhU2l6ZSkpOwogICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJsLnBh
dGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29udGVudFR5
cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0KCksIGRhdGEsIGRhdGFTaXplLCBu
dWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZVN0cmluZyB7IGNvbnRlbnRUeXBl
LmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVTdHJpbmcgPSBTdHJpbmc6OmZyb21M
YXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlU3RyaW5n
KSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmcoKSB9OwogICAgICAgICByZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggYzA3
Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQwZS4uYjVjMDQ1OWUxYzEwMDMyMmM1
OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2Uu
Y3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpIGNv
bnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRzbmFtZSBvc25hbWU7Ci0gICAgICAg
IHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25h
bWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IFN0cmluZygi
Il9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFtZSkgPj0g
MCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwgb3NuYW1lLm1hY2hpbmUpIDogZW1w
dHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBsYXRmb3JtTmFtZS0+aXNvbGF0ZWRD
b3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCmluZGV4IGM1ZGUx
YjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEuLmIyOGE1YTRlOGY2Zjc2NTAyMTll
NzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKQEAgLTE4NiwxMyArMTg2LDEzIEBA
IGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFkZXJTb3VyY2UoY29uc3QgY2hhciog
c2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2YWxpZGF0ZVN1Y2Nlc3MpIHsKICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpHZXRJbmZvTG9nKGNvbXBpbGVyKTsK
ICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAgICAgIHNoYWRlclZhbGlkYXRpb25M
b2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAgICAgICAgc2hhZGVyVmFsaWRhdGlv
bkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIoKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgb2JqZWN0Q29kZSA9IHNoOjpH
ZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2JqZWN0Q29kZS5sZW5ndGgoKSkKLSAg
ICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZyB7IG9iamVjdENvZGUuY19zdHIo
KSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNlID0gU3RyaW5nOjpmcm9tTGF0aW4x
KG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYgKCFnZXRTeW1ib2xJbmZvKGNvbXBp
bGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBzeW1ib2xzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJkZTc5MWMzN2E0NDZlZGQ4MS4uZTBm
ODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAg
dW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBpZiAoIW1fdmVyc2lvbikgewogICAg
ICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiBudW1iZXIg
KGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBvciB3aXRoCiAgICAgICAgIC8vICJP
cGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikp
KTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKICAg
ICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0NvbXBvbmVudHMgPSB2ZXJzaW9uU3Ry
aW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvbkRpZ2l0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9B
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGZk
OWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2ZiYjYuLjMyNDIwOTA2ODdmNzc4MWVl
MGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NI
RUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29k
ZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJh
dGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5j
b2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCmlu
ZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1MjljOTViOTguLmQ0MjBkNDgxMzkz
M2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
Y3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlR3N0U3RydWN0dXJl
VmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIGdwb2kKIHsKICAgICBp
ZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1ZVRvSlNPTih2YWx1ZSkpIHsKICAg
ICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxKU09OOjpPYmplY3QqPih1c2Vy
RGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nIHsgZ19xdWFya190b19zdHJp
bmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgb2Jq
ZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZmllbGRJ
ZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gVFJV
RTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5kZXgg
YmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3MjQ3NS4uNjdkNzBjYmNmNzIzMjNl
MjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6RWxl
bWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xhc3NpZmllciA9PSBDaGVja0hhcmR3
YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAoR0xpc3QqIGZhY3RvcmllcyA9IGNh
bmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkg
ewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVu
dEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGFkYXRh
IHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEoZmFjdG9yeSwgR1NUX0VMRU1FTlRf
TUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAgICBhdXRvIGNvbXBvbmVudHMgPSBt
ZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuY29udGFpbnMo
IkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1VzaW5nSGFyZHdhcmUgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBh
YmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2ZGM3Li4wMWZlZmVhMzJkMjEzNmRm
ZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChNZWRpYVN0
cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVhbVByaXZhdGUgPSAmc3RyZWFtOwot
ICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsgc3RyZWFtLmlkKCkpOworICAgIGxv
YWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJlYW0uaWQoKSkpOwogICAgIHN5bmNP
bkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5KCk7CkBAIC0xNzM1LDcgKzE3MzUs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwogICAgICAgICBHU1RfRVJST1IoIkVy
cm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZyB7
IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9yID0gTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyLmdldCgpLCBH
U1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NPREVDX05PVF9GT1VORCkKQEAgLTE4
ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGVsc2UgaWYgKGdzdF9zdHJ1Y3R1
cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJzIikpIHsKICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3NpbmcgSFRUUCBoZWFkZXJzOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIGlmIChjb25zdCBjaGFyKiB1
cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCAidXJpIikpIHsKLSAgICAg
ICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICAgICAgICAgICAgICBV
UkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICAgICAgICAgICAgICBtX29y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAg
ICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxvYWRCdWZmZXIoR3N0RWxlbWVudCog
ZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwgInRlbXAtdGVtcGxhdGUiLCBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHBp
cGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9hZCB0ZW1wbGF0ZSBmcm9tICclcycg
dG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCksIG5ld0Rvd25sb2FkVGVtcGxhdGUu
Z2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJlZml4UGF0aCB7IG5ld0Rvd25sb2Fk
VGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25sb2FkUHJlZml4UGF0aCA9IFN0cmlu
Zzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpKTsKICAgICBwdXJnZU9sZERv
d25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJlcGxhY2UoIlhYWFhYWCIsICIiKSk7
CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAvLyB0aG91Z2guIFdlIG5lZWQgdG8g
dGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5kCiAgICAgICAgIC8vIGFwcGVuZCB0
aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAgICAgICBVUkwgYmFzZVVybCA9IGdz
dF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkgOiBtX3VybDsKLSAgICAgICAgVVJM
IG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdMb2NhdGlvbiB9KTsKKyAgICAgICAg
VVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZyb21MYXRpbjEobmV3TG9jYXRpb24p
KTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBwbGF5YmluVXJsU3RyOwogICAgICAg
ICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1cnJlbnQtdXJpIiwgJnBsYXliaW5V
cmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0cmlu
ZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAgICBVUkwgcGxheWJpblVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgpKSB9OwogCiAgICAgICAgIGlmIChw
bGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBl
bGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVkaXJlY3Rpb24uIik7CkBAIC0yNTk5
LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVEaXNhYmxlZCgpCiAjaWYgUExBVEZP
Uk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhzdGQ6OmdldGVudigiV1BFX1NIRUxM
X0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAgICAgYXV0byBzID0gU3RyaW5nOjpm
cm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElTQUJMRV9NRURJQV9ESVNLX0NBQ0hF
IikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFs
dWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInQiIHx8
IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBJbml0RGF0YSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFGcm9tUHJvdGVjdGlvbk1lc3NhZ2Uo
R3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0
ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBT
dHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7CisgICAgICAgICAgICBpbml0RGF0
YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRLZXlTeXN0ZW1JZCksIGRhdGEgfSk7
CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VR
TlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MDM5LDcgKzQwMzksNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUHJvdGVjdGlvbkV2ZW50
KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbVVVSUQgPSBu
dWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBudWxscHRyOwogICAgIGdzdF9ldmVu
dF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmaW5pdERhdGEs
IG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nIHsg
ZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOworICAgIGluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtVVVJRCksIGlu
aXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6d2FpdGlu
Z0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2IzZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1
N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3VhZ2VDb2RlKEdzdFRhZ0xpc3QqIHRh
Z3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmIChnZXRU
YWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgbGFu
Z3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5n
dWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5ndWFnZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVydGVkIHRyYWNrICVkJ3MgbGFuZ3Vh
Z2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAgICAgICB2YWx1ZSA9IGxhbmd1YWdl
OwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0
VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0YWdOYW1lLCBTCiAgICAgR1VuaXF1
ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdzdF90YWdfbGlzdF9nZXRfc3RyaW5n
KHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkpIHsKICAgICAgICAgR1NUX0RFQlVH
KCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFnTmFtZSwgdGFnVmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdWYWx1ZS5nZXQoKSB9OworICAgICAg
ICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21MYXRpbjEodGFnVmFsdWUuZ2V0KCkp
IH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCmluZGV4IGQ3YmU4
MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUuLjMwNWU1MWFmZjc1YzVmYjBiYTNh
ZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0
YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFj
ZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50KiBlbGVtZW50KQogICAgIGdzdF9w
YWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlwZSwgW10oR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4g
ewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0YV0gPSBlbnN1cmVWaWRlb0ZyYW1l
TWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihpbmZvKSk7CiAgICAgICAgIEdTVF9Q
QURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRCdWZmZXI7Ci0gICAgICAgIG1ldGEt
PnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSwg
R1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGlt
ZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0
YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0YW1wKCksIEdTVF9DTE9DS19U
SU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAgICAgfSwgZ3N0
X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7CiAKQEAgLTEzNSw3ICsxMzUsNyBA
QCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVGb3JFbGVtZW50KEdzdEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAgICAgICAgIHJldHVybiBHU1RfUEFE
X1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50TmFtZSB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSk7CiAgICAgICAg
IGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuZ2V0KGVsZW1lbnROYW1l
KTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLnNldChlbGVtZW50TmFtZSwg
c3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSkpOwog
ICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0YzEyMGNhOGFkZTEwZjc1ZWI3Yjli
M2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUzZDNjZmI1OTllNTczNWUzMjNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNv
bmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyMCwgMCkK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2RlY191dGlsc19jYXBzX2dldF9taW1l
X2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nIHsg
Y29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNvZGVjID0gU3RyaW5nOjpmcm9tTGF0
aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2MyMDhlMy4uZDUxMWRhMTAwMTljYjQx
ZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgYm9vbCB3ZWJLaXRX
ZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
Z3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0cmEgaGVhZGVyOiBcIiVzOiAlc1wi
IiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwogICAgIFJlc291cmNlUmVxdWVzdCog
cmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVzdCo+KHVzZXJEYXRhKTsKLSAgICBy
ZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsgZmllbGROYW1lIH0sIFN0cmluZyB7
IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQo
U3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZENv
bnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjQ0LDcgKzY0NCw3IEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBE
YXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJUKG1lbWJlcnMtPnJlcXVlc3RlZFBv
c2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAlcyByZXF1ZXN0ZWRQb3NpdGlvbj0l
IiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUiIEdfR1VJTlQ2NF9GT1JNQVQsIG1l
bWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSwgbWVtYmVycy0+
cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7Ci0gICAgVVJMIHVybCB7
IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9IH07CisgICAgVVJMIHVybCB7IFN0
cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkpIH07CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRy
dWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1
ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgcmVx
dWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJyZXIpOwogCiAgICAgaWYgKHByaXYt
Pmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChTdHJpbmcg
eyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRo
b2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpKTsKIAogI2lmIFVT
RShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNjZXB0LUVuY29kaW5nIGlzIGRpc2Fi
bGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdl
YktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBmb3JtYXRlZFJhbmdlLnJlc2V0KGdf
c3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZPUk1BVCAiLSIsIG1lbWJlcnMtPnJl
cXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2Ug
cmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmcgeyBmb3JtYXRlZFJh
bmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShmb3JtYXRlZFJhbmdlLmdldCgpKSk7
CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9zaXRpb24gPT0gbWVtYmVycy0+cmVx
dWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcgQEAgY29uc3QgZ2NoYXIqIGNvbnN0
KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAKIHN0YXRpYyBVUkwgY29udmVydFBs
YXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewotICAgIHJldHVybiBVUkwgeyBTdHJp
bmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwgeyBTdHJpbmc6OmZyb21MYXRpbjEo
dXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RV
UklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKaW5kZXggMDRlYWUw
MGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4uYmM1MzlhODc0NzgwMjgxODEzZjZh
ZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCkBAIC0xMjIs
OSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENETUZhY3RvcnlUaHVuZGVyOjpzdXBw
b3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3VwcG9ydGVkS2V5U3lzdGVtcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlTdHJpbmc7CiAgICAgICAgIGlmIChv
cGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRldmlu
ZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAg
ICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19X
aWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVu
ZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX1dpZGV2aW5lS2V5
U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1l
ckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkg
PT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdT
dHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSk7CisgICAgICAgICAgICBz
dXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1F
VXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAgICAgICAgIEdTVF9ERUJVRygiJXp1
IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtleVN5c3RlbXMuc2l6ZSgpKTsKICAg
ICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGls
aXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
R1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4NzMwYzA0ZTc1NTAyYzZhMDQ0YTAx
NzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3ZjVlZjdkZGNlOTFlZmIyOGVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0
X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CiAgICAgICAgIGlm
IChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1tpXTsgKytpKQotICAg
ICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFs
bG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBw
ZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV0p
KTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVudFZlY3RvciYgZXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
aW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVhNzMxZTBhMzg1ZS4uMGJiMjJkNTI1
OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6OnR1cGxlPEdSZWZQdHI8R3N0Q2Fw
cz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9hdFNpemU+IEFwcGVuZFBpcGVsaQog
CiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGRlbXV4
ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJS
ZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAgIGlmICghZ3N0UmVnaXN0cnlTY2Fu
bmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpDb25maWd1cmF0
aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRpYVR5cGUgfSkpIHsKKyAgICBpZiAo
IWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZzo6ZnJvbUxhdGluMShvcmlnaW5h
bE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUgPSBTdHJlYW1UeXBlOjpJbnZhbGlk
OwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVtdXhlclNyY1BhZENhcHMsIEdTVF9W
SURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBwcmVzZW50YXRpb25TaXplID0gZ2V0
VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1BhZENhcHMpLnZhbHVlX29yKEZsb2F0
U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAx
ZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFE
ZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRpb246OmV4dHJhY3RDb2RlY05hbWUo
KQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRlc2NyaXB0aW9uKGdzdF9wYl91dGls
c19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBzLmdldCgpKSk7Ci0gICAgU3RyaW5n
IGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0byBjb2RlY05hbWUgPSBTdHJp
bmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwogCiAgICAgLy8gUmVwb3J0ICJILjI2
NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQcm9maWxlKSIganVzdCBhcyAiSC4y
NjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZhcmlhbnRzCiAgICAgLy8gZ28gdW5u
b3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiNjE1MGRhNDNkMTc4
NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTllODQ4ZWE2NmU0NWY1ZDgzMzViNWM5
NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzaXplX3QgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAg
ICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPScqOjEwME0nCiAgICAgICAg
IC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRlbzo5ME0sVDoxMDAwMDAnCiAK
LSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhfQlVGRkVSX1NJWkUiKSk7Cisg
ICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiTVNFX01BWF9C
VUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5j
cHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFjM2ZkYWMzNDZmMGFmZi4uZWU2NDMx
YWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9w
ZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpcwogU3Ry
aW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgQVNTRVJUKCFt
X3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIHJldHVy
biBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCmluZGV4IGU5
MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUyOWMuLmZlYWE1ZWQ0YWMyOWQ5Zjdl
OTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0
ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250CiAgICAg
LCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJlU2l6ZShmYWxzZSkKICAgICAsIG1f
dXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3RyaW5nKQogewotICAgIG1fdmVuZG9y
ID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xf
VkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikpKTsKKyAgICBtX3ZlbmRvciA9IFN0
cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7
CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25lbnRzID0gbV92ZW5kb3IuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAgIGlmICh2ZW5kb3JDb21wb25lbnRz
LmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEV4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4dGVuc2lvbnMoKQogICAgICAgICBH
TGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9F
WFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkg
PCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShH
TF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBtX2F2YWlsYWJsZUV4dGVuc2lvbnMu
YWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdl
dFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAgICAgICAgaWYgKCFtX2F2YWlsYWJs
ZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX3N0b3JhZ2UiX3MpKSB7CiAgICAg
ICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNw
cAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMyZjk1MWU3ZWZkYmQ5Li5lZGFlMTI5
MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIEV4dGVuc2lvbnNHTE9wZW5HTEVT
OjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogU3RyaW5n
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25zKCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5k
ZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVhZTdiMjNiZi4uOGY1NDY2YTVhM2U3
YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQogICAgIGlmICghbWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOworICAg
IHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
OjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggNjZkYmVjNDBhYWMyYjczOTdh
MTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0MWMzNTllMmE0NmEzNGFlNjllZDdl
Nzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRl
cy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1
dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29tcGxpYW50ID0gdHJ1ZTsKIAotICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgICAgICBhdXRvIGV4dGVuc2lvbnNT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX09FU190ZXh0dXJl
X25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlID0gZXh0
ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFja19zdWJpbWFnZSIpOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGM3YTFjMjcyNWQzZDJl
MmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQzYzBlN2U3MmUxZDJkNmY2YTFkNzkz
ZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAt
MzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcjo6VGV4dHVyZU1hcHBlckZQU0Nv
dW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBtX2ZyYW1lQ291bnQoMCkKIHsKLSAg
ICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52KCJXRUJLSVRfU0hPV19GUFMiKSB9
OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBtX2Zwc0lu
dGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQudG9Eb3VibGUoJm9rKSk7CiAgICAg
aWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhlYzVmMWJmNmEwZmFkZDlkOWFiYjE5
N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRkMGY2ZGY1MzA0ZTI2MWZjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTEx
Niw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlmIChjYWNoZWRUeXBlcy5nZXQoKS5z
aXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlwZXM7CiAKLSAgICBjYWNoZWRUeXBl
cy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7CisgICAgY2FjaGVkVHlwZXMuZ2V0KCku
YWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklBTlQgcHJvcFZhck1pbWVUeXBlQXJy
YXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWltZVR5cGVBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRH
dGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYyNDhjYzQ0MDcyM2NiMWFhYjguLmRk
NWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3Bw
CkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNp
bmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAgICAgY2FzZSBHREtfS0VZX0lTT19F
bnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX1JldHVy
bjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygi
XHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJceDgiX3MpOwogICAgIGNhc2UgR0RL
X0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0Iik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAgICBndW5pY2hhciBjID0gZ2RrX2tl
eXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25nIG53YzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlkOTNkM2EzN2I4Njk5N2JlNTZkMGYz
MC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZkYzU5Yzk0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQ
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcsMTEgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICBj
YXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKICAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcciIpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX0JhY2tTcGFjZToKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCJf
cyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0MzAzOGE3NjBlNzI2OWU4NGVjMTQx
MzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2EwODY5YmNkZmU3YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcApA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXI6OmFk
ZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2UpCiAKICAgICBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBk
ZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNlX2NsYXNzKGRldmljZS5nZXQoKSkp
OwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2aWNlQ2xhc3NDaGFyLmdldCgpKSk7
CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShkZXZpY2VDbGFzc0No
YXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIkF1ZGlvIikpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEg
JiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmlu
ZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3MmU2YTAyMDkuLmMyZTg2OTdhZmRi
NmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCkBAIC05
NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckRpc3BsYXlDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTCiAgICAgZ192YXJpYW50X2dldChy
ZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQdHIoKSk7CiAgICAgd2FpdFJlc3Bv
bnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAgU3RyaW5nIHJlcXVlc3RQYXRoKG9i
amVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBhdGggPSBTdHJpbmc6OmZyb21MYXRp
bjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNzaW9uUGF0aCA9IHJlcXVlc3RQYXRo
LnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5yZXBsYWNlKHRva2VuLCBzZXNzaW9u
VG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNrIHRoaXMgZGVwZW5kaW5nIG9uIGRl
dmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3
M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJkNjE3M2M0YTM4NzA2NmQ4NzZmZDdh
ZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQYXlsb2FkVHlwZShjb25zdCBHUmVm
UHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAiYXV0by1o
ZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwogCiAgICAgaWYgKGNvbnN0IGNoYXIq
IG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgIm1pbnB0aW1l
IikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUpOworICAgICAgICBhdXRvIHRpbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAgICAgICBpZiAoYXV0byB2YWx1ZSA9
IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KHRpbWUpKQogICAgICAg
ICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgpLCAibWluLXB0aW1lIiwgKnZhbHVl
ICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApp
bmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3M2QzZGU2OWM4Li4yYTcxNzJjZTc3
MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBDZXJ0aWZpY2F0ZUluZm86Omlzb2xh
dGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0ZUluZm86OnZlcmlmaWNhdGlvbkVy
cm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmcgeyBYNTA5X3Zlcmlm
eV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVycm9yKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmlj
YXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86OkNlcnRpZmljYXRlIENlcnRpZmlj
YXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
b250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFlNWNhZDEwZDRhMDZhZWU1OTk2M2Ri
Li43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUyMGNlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAg
LTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhhbmRsZSgpCiAKIGNvbnN0IFN0cmlu
ZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxjb2RlIGVycm9yQ29kZSkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJlcnJvcihlcnJvckNvZGUpKTsKIH0K
IAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCkK
QEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6OmFkZEV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaQogICAgIGFkZGl0aW9u
YWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSByZXNwb25zZUhlYWRlclNp
emU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFk
ZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVtb3RlQWRk
cmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAgICAgIGlmIChwb3J0KQogICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MuYXBwZW5kKCI6IiArIFN0cmlu
Zzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmViYTk3YTVkNGZiY2IwZi4uYTNiZThi
ZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgU3RyaW5nIGRlZmF1bHRD
b29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCBk
ZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJldHVybiBTdHJpbmcgeyBkZWZhdWx0
RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRlZmF1bHRGaWxlTmFt
ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQzOWI2NWI0NDBlOGYyYmIxOTU0ZTZj
NjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3OGYxN2MwZWRiMzUzMDJmNjEwZWMx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9PcGVu
U1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
T3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1tYXJ5SW5mbyhjb25zdCBWZWN0b3I8
dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNTTCogc3NsKQogewotICAgIHJldHVy
biBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZy
b21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQogCiBTdHJpbmcgdGxzQ2lwaGVyTmFt
ZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgU1NMX0NJUEhFUl9nZXRf
bmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9nZXRfY3VycmVudF9jaXBoZXIoc3Ns
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXggZWY4OTYyMjRmYTA3YWE1ZmRhMWZh
ODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEwNWUyYzc3Y2RlOWU3MWExYmI0NzE4
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1
YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgU3RyaW5n
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5hbChjb25zdCBwc2xfY3R4X3QqIHBz
bCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFibGVfZG9tYWluIHJldHVybnMgYSBw
b2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGRv
bWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRlRG9tYWluID0gcHNsX3JlZ2lzdHJh
YmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJldHVybiBTdHJpbmcgeyB0b3BQcml2
YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEodG9wUHJpdmF0
ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhhMDBhZmU3YTliMThkMDRiMjAyNDRl
NTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEwNmUwYmIwMDE2MjA1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xv
YWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFJl
c291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OnBsYXRmb3JtQmFkUmVzcG9uc2VF
cnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAgICAgVVJMIGZhaWxpbmdVUkw7Ci0g
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIik7Cisg
ICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQgU2VydmVyIFJlc3BvbnNlIl9zKTsK
IAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9zLCBlcnJvckNvZGUsIGZhaWxpbmdV
UkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTViNmY5NTM5YWFiMDk2MmU4NmJjLi42
ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTkyNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
YWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAgZm9yIChhdXRvKiBpdGVtID0gY29v
a2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4dChpdGVtKSkgewogICAgICAgICBH
VW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRl
bS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9kb21haW4oY29va2llLmdldCgpKSB9
KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9jb29raWVfZ2V0X2RvbWFpbihj
b29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5j
cHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAzMmIyMzFiOTk5M2MxZC4uY2JhYmMw
MTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGludCBz
dGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFzZSkKIHsKLSAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9N
QUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFzb25QaHJhc2UpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZhaWxpbmdVUkwsIHJlYXNvblBocmFz
ZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yKFNvdXBNZXNz
YWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEsMjIgKzYxLDIyIEBAIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYgVVNFKFNPVVAyKQotICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfSFRUUF9FUlJP
Ul9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAorICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1Jf
RE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAgICAgICBzb3VwVVJJVG9VUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UtPnJl
YXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsg
Z19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSB9LCBzb3VwX21lc3NhZ2VfZ2V0
X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21M
YXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIHNvdXBfbWVzc2Fn
ZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNz
YWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2VfZ2V0X3JlYXNvbl9waHJhc2UobWVz
c2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmdlbmVy
aWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJyb3IqIGVycm9yKQogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21h
aW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5t
ZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0aW4xKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIGZhaWxpbmdVUkws
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBS
ZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZhaWxpbmdVUkwsIHVuc2lnbmVkIHRs
c0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkKIHsKLSAgICBSZXNvdXJjZUVy
cm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1Ip
IH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFpbGluZ1VSTCwgdW5hY2NlcHRhYmxl
VExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmlu
Zzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RMU19FUlJPUikpLCBHX1RMU19FUlJP
Ul9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRl
KCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3JzKHRsc0Vycm9ycyk7CiAgICAgcmVz
b3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggOTM5NThlMjRkYTYwNWYzZTVh
NDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1MDgyYTI4MDBkZjYwOWU1OTg2OWFh
MDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNz
YWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVh
ZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21M
YXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQog
CiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAwMjg1NTY5NDYzMmEwMjc3NDA5MTQ1
NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0MWQ4Y2Q3NmFkMWJjN2ViODJhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0YXR1c0NvZGUgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5n
IHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSB9KTsKKyAgICBz
ZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc291cF9tZXNzYWdlX2dldF9yZWFz
b25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9jZXJ0aWZpY2F0ZSA9IHNvdXBfbWVz
c2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1lc3NhZ2UpOwogICAgIG1fdGxzRXJy
b3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0aWZpY2F0ZV9lcnJvcnMoc291cE1l
c3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3Bv
bnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIFN0
cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwog
ICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgpICYmIG1faHR0cFN0YXR1c0NvZGUg
IT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZmZWRDb250ZW50VHlwZSAhPSBvZmZp
Y2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgc25pZmZlZENvbnRlbnRU
eXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBl
ID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVU
eXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgIGlmIChtX21pbWVUeXBlLmlzRW1w
dHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKICAg
ICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJs
LnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNv
dXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChz
b3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwg
JmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJO
YW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChT
dHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJW
YWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1MGU0YWY1MWQ1OTNlNDJkNjZhYjUu
LjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYzNGUzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBjcmVhdGVGYWxsYmFja01vbnRoTGFi
ZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlxdWU8VmVjdG9yPFN0cmluZz4+KCk7
CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0ZDo6c2l6ZShXVEY6Om1vbnRo
RnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFt
ZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjptb250aEZ1bGxOYW1lKQogICAgICAg
ICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUpOwogICAgIHJldHVybiBsYWJlbHM7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2Fs
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2Nv
YS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0NGM3ZDU1NWUyMGRjYjdjLi4zZTU2
MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29jb2EubW0KQEAgLTIwNyw3ICsyMDcs
NyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29jb2E6OnNob3J0TW9udGhMYWJlbHMo
KQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKICAg
ICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkKLSAgICAgICAgbV9zaG9ydE1vbnRo
TGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEobmFtZSkpOworICAgICAg
ICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5kKG5hbWUpOwogICAgIHJldHVybiBt
X3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVlYzMzNGZlNzQ4OGFkM2RkN2NlY2M4
OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNhYjFlYmIzYjI1YzYxNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcApAQCAtMzk4
LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRpYWxpemVMb2NhbGVEYXRhKCkKICAg
ICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vic3RpdHV0aW9uMHRvOTsKICAgICBn
ZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJT04sIGRpZ2l0U3Vic3RpdHV0aW9u
KTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGlnaXRTdWJzdGl0dXRpb24wdG85KSB7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIx
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Iik7Ci0gICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI4Iik7Ci0gICAgICAgIHN5bWJv
bHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIl9zKTsKKyAgICAgICAg
c3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjQi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjciX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Il9zKTsKICAgICB9
IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NB
TEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChkaWdpdHMubGVuZ3RoKCkgPj0gMTAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxp
dGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0
aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMyNmNjODhiNTRlNGFiMTdhMmUyMmUz
Li5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2NjBlZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcApA
QCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qs
IERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kgZmlsZW5hCiAgICAgfSBlbHNlIGlm
IChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxGb3JtYXQoKSwgJnN0b3JlKSkpIHsK
ICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAgIHVybCA9IGV4
dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAgICAgIHVybCA9IGV4dHJhY3RVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhz
dG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0K
QEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRhT2JqZWN0
LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgICAgICAgICAg
Ly8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7CiAgICAgICAgICAgICBpZiAo
ZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0EoZGF0YSkgfHwgUGF0aElzVU5DQShk
YXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3Rl
bVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOworICAgICAgICAgICAgICAgIHVy
bCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChTdHJpbmc6OmZyb21MYXRpbjEoZGF0
YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlKQogICAgICAg
ICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICB9CkBAIC01MjcsNyArNTI3
LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVjdCogZGF0YU9iamVjdCkKICAgICB9
IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXREYXRhKHBsYWluVGV4dEZvcm1hdCgp
LCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0CiAgICAgICAgIGNoYXIqIGRhdGEg
PSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFsKSk7Ci0gICAgICAg
IHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEo
ZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVs
ZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7CkBAIC02MTMsNyArNjEzLDcgQEAg
Ym9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0YU1hcCopCiBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYg
Y2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlmIHByZXNlbnQKLSAgICBTdHJpbmcg
c3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJM
OiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNpZ25lZCBsaW5lU3RhcnQgPSBjZmh0
bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7CiAgICAgaWYgKGxpbmVTdGFydCAh
PSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVj
dENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50
ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3ZTgwZjVlMThhNGExNzU1Y2IuLjA4
MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RDb3VudGVyOjpHRElPYmplY3RDb3Vu
dGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAgaW5pdChTdHJpbmcgeyBpZGVudGlm
aWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4xKGlkZW50aWZpZXIpKTsKIH0KIAog
R0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihjb25zdCBTdHJpbmcmIGNsYXNzTmFt
ZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2
ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0YjMzYTQ1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtODQwLDcgKzg0MCw3
IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0LCBQbGFp
blRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYgKDo6SXNDbGlwYm9hcmRGb3JtYXRB
dmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmREYXRhKENGX1RFWFQpKSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNoYXJhY3RlcnMgYXMgTGF0aW4tMSwg
bm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJcyB0aGF0IHRoZSByaWdodCBlbmNv
ZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmluZyB7IHN0YXRpY19jYXN0PGNoYXIq
PihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmc6
OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSkpOwogICAg
ICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICA6OkNsb3NlQ2xpcGJv
YXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgsNyArODg4LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUmIGZyYW1l
LCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBjYkRhdGEgPSA6OkdldENsaXBib2Fy
ZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JEYXRhKSB7CiAgICAgICAgICAgICAg
ICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soY2JEYXRhKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIpOworICAgICAgICAgICAgICAgIGF1
dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgR2xv
YmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIHN0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJh
dG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JX
aW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQxYzE4MGVmN2JiNzVkYTcxOTUuLjIy
ZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVj
dG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0cmluZ3Mgc2hvdWxkIGJlIGxvY2Fs
aXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7CisgICAgdi5hcHBlbmQoIkhpZ2gg
R3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgVVJMJiB1cmwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCmlu
ZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJkMjJjYWE5ZDIuLjMxM2MzMmE5MzZk
OTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02MCw3ICs2MCw3IEBAIGlubGluZSBT
dHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUsIFhySW5zdGFuY2UgaW5zdGFuY2Up
CiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJTkdfU0laRV07CiAgICAgWHJSZXN1
bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5jZSwgdmFsdWUsIGJ1ZmZlcik7CiAg
ICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
cik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVlKSwgIj4iKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUxNjViMmZlMmNlMDNiMWYwZWU1Yy4u
YjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2ODdjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24u
Y3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gU2Vzc2lvbjo6
cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgICAgICByZXR1cm4g
U3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIk5v
cm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiX3MpOwog
ICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJT
ZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5YzdhMzU5N2MyODFkMTBhNTliZWMy
Li44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5OGFmMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgaW50IFdlYkRyaXZlclNl
cnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NL
RVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7CiAgICAgaWYgKGNvbnN0IGNoYXIq
IHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RBUkdFVF9BRERSIikpCi0gICAgICAg
IHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZhciB9OworICAgICAgICB0YXJnZXRT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52VmFyKTsKICNlbmRpZgogICAgIGZv
ciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcg
PSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBXZWJEcml2ZXJTZXJ2aWNlOjpydW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1l
bnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07Cisg
ICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0PSIpOwogICAgICAgICBpZiAoIXN0
cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgpICYmIHBvcnRTdHJpbmcuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJpbmcoYXJnICsgcG9ydFN0ckxlbmd0
aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHBv
cnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0aCA9IHN0cmxlbigiLS1ob3N0PSIp
OwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0PSIsIGhvc3RTdHJMZW5ndGgpICYm
ICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5nKGFyZyArIGhvc3RTdHJMZW5ndGgp
OworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyBob3N0U3RyTGVu
Z3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTk3LDEzICs5Nywx
MyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YXJn
ZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICB0YXJnZXRTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXJnZXRTdHJMZW5ndGgg
PSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS10YXJn
ZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0YXJnZXRTdHJMZW5ndGgpOworICAg
ICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZyArIHRhcmdldFN0
ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01
NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxl
dGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJzLAogCiAgICAgaWYgKCFtX3Nlc3Np
b24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpF
cnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygic2Vzc2lvbiBkZWxldGVkIGJlY2F1
c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vz
c2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3Ig
aGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTcxNCwxNCAr
NzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3ND
YXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIC8vIDIuMS4gSWYgcmVx
dWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0IHRoZSB2YWx1ZSB0byBhbiBlbXB0
eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1aXJlZENhcGFiaWxpdGllcyA9IHJl
cXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmls
aXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWls
KENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5
c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVpcmVkIGNhcGFiaWxpdGllcyBiZSB0
aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBhYmlsaXRpZXMgd2l0aCBhcmd1bWVu
dCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWlyZWRDYXBhYmlsaXRpZXMgPSB2YWxp
ZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIXJlcXVp
cmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmlu
ZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVz
Il9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtNzM2LDcgKzczNiw3IEBA
IFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNM
aXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlm
ICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAgICAgICAgICAgIC8vIDMuMi4gSWYg
YWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3QgYSBKU09OIExpc3QsIHJldHVybiBl
cnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVudC4KLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFi
aWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmco
ImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAtNzQ5LDEzICs3NDksMTMgQEAgVmVj
dG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhj
b25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlyc3RN
YXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGZpcnN0TWF0
Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzTGlzdC0+Z2V0KGkpLT5hc09i
amVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMpIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBjYXBhYmlsaXRpZXMg
Zm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3Vt
ZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giX3Mp
KSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgICAgIC8vIDUuMS4g
TGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFs
aWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVz
LgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVz
KCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIklu
dmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Oklu
dmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC03OTEsNyArNzkx
LDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6cHJvY2Vzc0NhcGFi
aWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9CiAKICAgICBpZiAobWF0Y2hlZENh
cGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3Jl
YXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmls
aXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04MDMsNyArODAz
LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAvLyDCpzguMSBOZXcgU2Vzc2lvbi4K
ICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNuZXctc2Vzc2lvbgogICAg
IGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJp
bmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9ucyIpKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2Rl
OjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vz
c2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24oUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjb25uZWN0
VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25O
b3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiKSkpOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNh
cGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTkwMSw3ICsx
OTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0
aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAogICAgIGF1dG8gZHVyYXRpb24gPSB1
bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVsbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1YnR5cGUgPSBhY3Rpb25JdGVtLmdl
dFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUgIT0gInBhdXNlIikgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlz
c2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTM1
LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NLZXlBY3Rp
b24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAgIGVsc2UgaWYgKHN1YnR5
cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCIpOworICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGFjCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAgYXV0byBrZXlWYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAgaWYgKCFrZXlWYWx1ZSkgewotICAg
ICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMg
bWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBtaXNzaW5nIGZvciBrZXkgdXAv
ZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5hc1N0cmluZygpOwogICAgICAgICBp
ZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVl
JyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogY2hlY2sgc2lu
Z2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHN0YXRpYyBib29s
IHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlv
biYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRvIGR1cmF0aW9uID0gdW5zaWduZWRW
YWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICghZHVyYXRpb24pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGlu
dmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmR1cmF0aW9uID0g
ZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIHN0YXRpYyBib29sIHByb2Nl
c3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0
aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVjdCA9IG9yaWdpblZhbHVlLT5hc09i
amVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJRCA9IG9yaWdpbk9iamVjdC0+Z2V0
U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVyKCkpOwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0IGlu
IGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIgZWxlbWVudCBvYmplY3QgaW4gYWN0
aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9yaWdpbiB7IFBvaW50ZXJPcmlnaW46
OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgc3RhdGlj
IGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwg
QWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2UgaWYgKG9yaWdpbiA9PSAicG9pbnRl
ciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2lu
dGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxvcHQgfTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRl
ck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwog
ICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoIngiX3MpKSB7CiAgICAg
ICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4VmFsdWUsIElOVF9NSU4pOwogICAg
ICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBh
cmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9u
LnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNz
UG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rpb24mIGFjdGlv
biwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInkiX3MpKSB7
CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp5VmFsdWUsIElOVF9NSU4p
OwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFj
dGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
YWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIFBv
aW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gInBvaW50ZXJDYW5jZWwiKQogICAg
ICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpQb2ludGVyQ2FuY2VsOwogICAg
IGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5
cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZh
bGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIwNzQs
MTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRl
ckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFyYW0KICAgICBjYXNlIEFjdGlvbjo6
U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0byBidXR0b25WYWx1ZSA9IGFjdGlv
bkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAgIGlmICghYnV0dG9uVmFsdWUpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9u
JyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgbWlzc2luZyBm
b3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0dG9uID0gdW5zaWduZWRWYWx1ZSgq
YnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikgewotICAgICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIGludmFsaWQgZm9yIHBv
aW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlkIGZvciBwb2ludGVyIHVwL2Rvd24g
YWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0K
ICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNlQnV0dG9uKGJ1dHRvbi52YWx1ZSgp
KTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJv
Y2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICBlbHNl
IGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9u
OjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiB3
aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFY
Il9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgq
ZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVgpIHsKLSAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWCcg
aXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFsdWUoKTsKQEAgLTIxMzYsNyArMjEz
Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNv
bnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAgICAgaWYgKGF1dG8gZGVsdGFZVmFs
dWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3MpKSB7CiAgICAgICAgICAgICBhdXRv
IGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0YVlWYWx1ZSwgSU5UX01JTik7CiAg
ICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBpbnZhbGlkIGZvciBhY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2Rl
bHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWN0aW9uLmRlbHRhWSA9
IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmpl
Y3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBwYXJhbWV0ZXJzRGF0YVZhbHVlLT5h
c09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEpIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVu
Y2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiX3MpOwogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3ICsyMTc5LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyhK
U09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVyVHlwZSA9PSAidG91Y2giKQogICAg
ICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRlclR5cGU6OlRvdWNoOwogICAgIGVs
c2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3BvaW50
ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIGludmFsaWQi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdwb2ludGVy
VHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBpbnZhbGlkIl9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxOTAsNyArMjE5
MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRB
Y3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAgICAgYXV0byBhY3Rpb25TZXF1ZW5j
ZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsKICAgICBpZiAoIWFjdGlvblNlcXVl
bmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5j
ZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIyMDUsMTMgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Np
b24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJub25lIikKICAgICAgICAgaW5wdXRT
b3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgaXMgaW52YWxpZCBv
ciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rp
b24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3RyaW5nKCJpZCJfcyk7CiAgICAgaWYg
KCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lk
JyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnaWQnIGlzIGludmFsaWQgb3IgbWlz
c2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lv
bgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9uLmdldE9yQ3JlYXRlSW5wdXRTb3Vy
Y2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUpOwogICAgIGlmIChpbnB1dFNvdXJj
ZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBk
b2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3VyY2UudHlwZSA9PSAgSW5wdXRTb3Vy
Y2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9pbnRlclR5cGUgIT0gcG9pbnRlclR5
cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9p
bnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHR5cGUg
ZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0eXBlIl9zKTsKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRvIGFjdGlvbkl0ZW1zID0gYWN0aW9u
U2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbkl0ZW1zKSB7
Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycg
aXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICdhY3Rpb25zJyBpcyBpbnZhbGlk
IG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJfcyk7CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lv
biYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhY3Rpb25JdGVtc0xlbmd0
aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9IGFjdGlvbkl0ZW1zLT5nZXQoaSkt
PmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRlbSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0aW9uIHNlcXVlbmNlIGlzIG5vdCBh
biBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9u
IGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0aW9uc0FycmF5ID0gcGFyYW1ldGVy
cy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICghYWN0aW9uc0FycmF5KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9u
cycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBu
b3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAppbmRleCBhMDlkMDk0MWJhN2ZkMjll
YmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEyOTExYWYxOTFiOTM2NzAxNmYxZTU2
MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3Rr
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5p
dCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMo
KQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1O
YW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3Qg
PSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAg
Ym9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJp
bmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9y
bVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGll
cywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0CiB7Ci0gICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRpZXMu
YnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIvd2Via2l0Mmd0ay0iIFdFQktJVEdU
S19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsK
ICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJhcnMgPSB0cnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCmluZGV4IDkzNjcxMmYyZjEz
NWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2NzFjY2FkYTI1ZTczNzFmNjM2NTgy
YWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZl
clNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZp
Y2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUNhcGFiaWxp
dGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKLSAgICBjYXBhYmlsaXRp
ZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZv
cm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVy
L3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2NTZhNjc2YWIyY2ExMmEwMDVmYWMw
OTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVmN2UzZTJkNzQwNWE1ZTZkMmViMjA0
MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BF
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcApA
QCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBD
YXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewog
ICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0g
U3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFdpbmRvd1JlY3QgPSBmYWxz
ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
V2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1QYXJz
ZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMsIENh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOworICAgIGNhcGFiaWxpdGllcy5icm93
c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7CiAgICAgY2FwYWJpbGl0aWVzLmJy
b3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICItLWF1dG9tYXRpb24iX3MgfTsKIAog
ICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgi
d3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCAxZjBiN2U0ZTk5
ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlkYWMwNzlkZDI4N2I4NDFhODIwMTcz
YjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC05MzEsNyArOTMxLDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAjaWYg
VVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNlRXJyb3I6OnRyYW5zcG9ydEVycm9y
KG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVTX1RPT19NQU5ZX1JFRElSRUNUUywg
IlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAgICAgICAgZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwg
U09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51
cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKKyAgICAgICAg
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElS
RUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkg
cmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNyw3
ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkQ2FsbGJhY2soR0lucHV0
U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0KgogICAgICAgICBpZiAodGFzay0+bV9z
b3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcjo6Z2Vu
ZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBlcnJvci5nZXQoKSkpOwog
ICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAgICAgICAgICB0YXNrLT5kaWRGYWls
KFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikg
fSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21V
VEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2UgaWYgKGJ5dGVzUmVhZCA+IDApCkBA
IC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlcXVlc3RO
ZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQogICAgIEFTU0VSVCgh
bV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5wdXRTdHJlYW0p
OwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hl
YWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7Ci0gICAgU3RyaW5nIGNvbnRlbnRU
eXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBl
IikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVxdWVzdC51cmwoKSwgZXh0cmFjdE1J
TUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAgICAgICAgIHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICBtX3Jlc3BvbnNlLnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoKQogICAgICAgICBjb25zdCBjaGFy
KiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICAgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFk
ZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0
cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgICAgICByZXF1
ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MucmVxdWVz
dEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsKIAogICAgICAgICBhZGRpdGlvbmFs
TWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlvcml0eShzb3VwX21lc3NhZ2VfZ2V0
X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAgLTE2OTEsNyArMTY5MSw3IEBAIHZv
aWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUluZm8oR0ZpbGVJbmZvKiBpbmZvKQog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0L2h0bWwiX3MpOwogICAgICAgICBt
X3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgtMSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2luZm9fZ2V0X2NvbnRlbnRfdHlwZShp
bmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdf
ZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwogICAgICAgICBtX3Jlc3BvbnNlLnNl
dE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGlmIChtX3Jlc3BvbnNl
Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0
cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKGdf
ZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICBp
ZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBn
X3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9m
aXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7Cisg
ICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJz
dFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAg
ZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZNb3ZlKGlucHV0U3RyZWFtKSk7CiB9
CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmVudW1lcmF0
ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBHQXN5bmNSZXN1bAogICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRyPEdGaWxlRW51bWVyYXRvcj4gZW51
bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2ZpbmlzaChmaWxl
LCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikKLSAgICAgICAgdGFz
ay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3Ry
aW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgdGFzay0+ZGlkRmFpbChS
ZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+
ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBlbHNlCiAgICAgICAgIHRhc2stPmRp
ZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFtTmV3KFdURk1vdmUoZW51bWVyYXRv
ciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJlYmNmOTIyMWIzNWRiMmUwOWFiNi4u
NmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2FmMDIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3Bw
CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQ
dHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiZXJyb3IiLCByZWludGVycHJldF9j
YXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJhY2spLCB0aGlzKTsKIAotICAgIG1f
Y2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0
X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwor
ICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJvbUxhdGluMShzb3VwX3dlYnNvY2tl
dF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKSwgYWNjZXB0ZWRF
eHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25z
ZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOGJlNWU2Njg2NTkwYTc2
MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3YmNmMGNjMWNhZjExODllNDkwMGMw
ZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogU3RyaW5nIGxvZ0xldmVs
U3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIFN0cmluZyB7IGdldGVu
digiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGdldGVu
digiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1cm4gU3RyaW5nKCk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApp
bmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDczZjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4
ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlTdGRFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyArMTU0LDcgQEAgc3RhdGljIGludCBj
cmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3RyaW5nIHRlbXBOYW1lOwogICAgIGZv
ciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0gLTEgJiYgdHJpZXMgPCAxMDsgKyt0
cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4i
KSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihXVEY6OnJhbmRvbU51bWJl
cigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKTsKKyAg
ICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNoYXJlZE1lbW9yeS4iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAgIHRlbXBOYW1lID0gbmFtZS51dGY4
KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNhNDlhM2M2MjhkMGRiZjZiMDkyZGIy
N2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmko
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJpKQogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3QpKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0gfTsKKyAgICBVUkwg
dXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3Qt
PnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcApp
bmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZkZmJmYTk0YzU4Li5kMGI0OTAyNjBh
MDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kS2V5VmFs
dWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBjb25zdCBTdHJpbmcmIGtleSwgc2l6
ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNw
cAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2YjFhMGIzMmM1NzcwLi45MGRmMDkz
YTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0LDk4ICsyMzQsOTggQEAgc3RhdGlj
IFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJBTSB3cGFyYW0sIFdlYkV2ZW50OjpU
eXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5Q29kZSkgewogICAgIGNhc2UgVktf
TUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisgICAgICAgIHJldHVybiAiQWx0
Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJv
bCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAgICAgY2FzZSBWS19TSElGVDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAgICAgcmV0dXJuICJTaGlmdCJfczsK
ICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAgY2FzZSBWS19MV0lOOgogICAgIGNh
c2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiV2luIik7CisgICAgICAgIHJldHVy
biAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkNs
ZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAgICAgY2FzZSBWS19ET1dOOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAgIHJldHVybiAiRG93biJfczsKICAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRW5kIik7CisgICAgICAgIHJl
dHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogICAgIGNhc2UgVktfRVhFQ1VU
RToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIpOworICAgICAgICByZXR1cm4gIkV4
ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEiKTsK
KyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZLX0YyOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgIGNhc2UgVktfRjM6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAg
Y2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjQiKTsKKyAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGNSIpOwor
ICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktfRjY6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgY2FzZSBWS19GNzoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICBj
YXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGOCIpOworICAgICAgICByZXR1cm4g
IkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY5Iik7Cisg
ICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19GMTA6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICBjYXNlIFZLX0YxMjoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAgICAgIHJldHVybiAiRjEyIl9zOwog
ICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTMiKTsKKyAgICAgICAg
cmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICBjYXNlIFZLX0YxNToKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgIGNh
c2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTYiKTsKKyAgICAgICAgcmV0dXJu
ICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNyIp
OworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNlIFZLX0YxODoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgIGNhc2UgVktf
RjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsKKyAgICAgICAgcmV0dXJuICJGMTki
X3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMCIpOworICAg
ICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0YyMToKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgIGNhc2UgVktfRjIyOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAgICAgcmV0dXJuICJGMjIiX3M7CiAg
ICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYyMyIpOworICAgICAgICBy
ZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAgIGNhc2UgVktfSEVMUDoKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAgICAg
Y2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJIb21lIik7CisgICAgICAgIHJl
dHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogICAgIGNhc2UgVktfTEVG
VDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOworICAgICAgICByZXR1cm4gIkxlZnQi
X3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlRG93biIp
OworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAgICByZXR1cm4gIlBhZ2VVcCJfczsK
ICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktfU05BUFNIT1Q6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4i
X3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUmlnaHQiKTsK
KyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNlIFZLX1NDUk9MTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAg
IGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJTZWxlY3QiKTsKKyAgICAg
ICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19VUDoKLSAgICAgICAgcmV0dXJuIFN0
cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICBjYXNlIFZLX0RFTEVURToK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8vIFN0YW5kYXJkIHNheXMgdGhhdCBE
RUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAiVSswMDdGIl9zOyAvLyBTdGFuZGFy
ZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBwZXIoa2V5Q29kZSksIDQpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1YmVkYmJkNDgzNGVlN2MxMTFjZmVk
YjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0ZTllNDQ0ODM3ZjNjNjkxNjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2Nv
bEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgV2ViS2l0UHJvdG9jb2xIYW5k
bGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIAog
dm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3
ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJl
cXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1
IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1ZjdhNDg2MTc5YjFjMzhkMDQzY2VmMjNi
MjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQzMjExZTFlOGM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2No
ZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklT
Y2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3lu
YwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJlc3AgPSBwcml2LT5yZXNwb25zZS5n
ZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewotICAgICAgICBTdHJpbmcgY29udGVu
dFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEo
KSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKHdlYktp
dFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVzcCkuZGF0YSgpKTsKICAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLCB3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJl
c3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29uc3QgQ1N0cmluZyYgc3RhdHVzTWVz
c2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzTWVzc2FnZShyZXNwKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENh
bGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luYwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNl
R2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVz
VGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxhdGluMShzdGF0dXNNZXNzYWdlLmRh
dGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNwb25zZS5taW1lVHlwZSgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6
Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAt
MzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJy
b3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAgICAgcHJpdi0+cmVz
cG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmcg
eyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCB0b1dlYkNvcmVFcnJvcihlcnJv
ci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCB0b1dlYkNvcmVF
cnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYtPnRhc2stPmRpZENvbXBsZXRlKHJl
c291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBmM2EyNzIzYzEyODMwZDJkMDkuLjE1
YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNlckNvbnRlbnRNYW5hZ2VyRGVzdHJv
eWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQogewotICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
Z2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmc6OmZy
b21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAg
ICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9MSUNZX0VSUk9SLCBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBzaG93IGluc3BlY3RvciBVUkw6IG5v
IHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXggMjJmYzBhOGRmYjA4ZWIyYWRiNDBi
OTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRm
YzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRD
b2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xv
ci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3ZWJraXRfY29sb3JfcGFyc2UoV2Vi
S2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JTdHJpbmcpCiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb2xv
clN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJpbmcgeyBjb2xvclN0cmluZyB9KTsK
KyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2xvcldp
dGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xvclN0cmluZykpOwogICAgIGlmICgh
d2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNy4uNGVlM2E1YjAwM2Jk
MGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdv
cmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0
b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVu
dGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0
aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3Ry
aW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJfaW5pdCgibGliV1BFQmFja2VuZC1m
ZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xp
ZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdw
ZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9w
dCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0g
RmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRpbjEod3BlX2xvYWRlcl9nZXRfbG9h
ZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9
IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNwbGF5TmFtZSgpOwpAQCAtMTE2LDgg
KzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBHQXBwbGljYXRpb24qIGFw
cCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoYXBwKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBnX2FwcGxpY2F0aW9uX2dldF9hcHBs
aWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBTdHJp
bmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAgICAgICAgcGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0
aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lID0gU3RyaW5nOjpm
cm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLmlu
c3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6aW5zcGVj
dG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCmluZGV4IDgx
NzFlZjYyY2M3N2MwYjExMmZkZTYxYzkzNmNmM2IwZGZkN2E1ZjYuLjEzYjkwMjkyODc2NzU3MDgy
NmQxYTQ4NTlhYmRjMTViMzllMGJhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwCkBA
IC04NCwxNCArODQsMTQgQEAgc3RhdGljIGJvb2wgaXNFR0xJbWFnZUF2YWlsYWJsZShib29sIHVz
ZUluZGV4ZWRHZXRTdHJpbmcpCiAgICAgICAgIEdMaW50IG51bUV4dGVuc2lvbnMgPSAwOwogICAg
ICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTlVNX0VYVEVOU0lPTlMsICZudW1FeHRlbnNpb25zKTsK
ICAgICAgICAgZm9yIChHTGludCBpID0gMDsgaSA8IG51bUV4dGVuc2lvbnM7ICsraSkgewotICAg
ICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKTsKKyAgICAgICAgICAgIFN0
cmluZyBleHRlbnNpb24gPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSk7CiAgICAgICAgICAgICBp
ZiAoZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8fCBleHRlbnNpb24gPT0gIkdMX09F
U19FR0xfaW1hZ2VfZXh0ZXJuYWwiKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFN0cmluZyBleHRlbnNp
b25zU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcg
PSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6
IGV4dGVuc2lvbnNTdHJpbmcuc3BsaXQoJyAnKSkgewogICAgICAgICAgICAgaWYgKGV4dGVuc2lv
biA9PSAiR0xfT0VTX0VHTF9pbWFnZSIgfHwgZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdl
X2V4dGVybmFsIikKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKaW5kZXggZmUwNGMx
ZmY0NDE2MWMwNzZmNTM3ZGE1MTNjYzJkNzE1Y2E5MDAzZS4uYmU5YmE0YzYwOTIwYjRmNzg4YTJh
YmM1OTA4ZDZkZmFjMDQ4ZjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29tbWFuZHNGb3JLZXl2YWwodW5zaWduZWQga2V5dmFs
LCB1bnNpZ25lZCBtb2RpZmllcnMpOwogCi0gICAgdm9pZCBhZGRQZW5kaW5nRWRpdG9yQ29tbWFu
ZChjb25zdCBjaGFyKiBjb21tYW5kKSB7IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmFwcGVuZChj
b21tYW5kKTsgfQorICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRvckNvbW1hbmQoY29uc3QgY2hhciog
Y29tbWFuZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0
aW4xKGNvbW1hbmQpKTsgfQogCiBwcml2YXRlOgogICAgIEd0a1dpZGdldCogbV9uYXRpdmVXaWRn
ZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggNDRjYmY3M2M2YWQx
NTVjZTI2MjllMDFhNDc0OThjMjUyOGNlYzQ2Yi4uN2IwNzk4MzhiMzdmZjU3YTI4NDk0N2VhYTlh
NzllYTg3OTY2YzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAt
NzMyLDcgKzczMiw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFn
ZSogd2ViUGFnZSkKIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6RGljdGlvbmFyeSYg
bWVzc2FnZSkKIHsKICNpZiBQTEFURk9STShHVEspCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IFN0
cmluZygiR2V0U25hcHNob3QiKSkgeworICAgIGlmIChtZXNzYWdlTmFtZSA9PSAiR2V0U25hcHNo
b3QiKSB7CiAgICAgICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSBzdGF0aWNf
Y2FzdDxTbmFwc2hvdE9wdGlvbnM+KHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5n
ZXQoIlNuYXBzaG90T3B0aW9ucyJfcykpLT52YWx1ZSgpKTsKICAgICAgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5nZXQoIkNhbGxiYWNr
SUQiX3MpKS0+dmFsdWUoKTsKICAgICAgICAgU25hcHNob3RSZWdpb24gcmVnaW9uID0gc3RhdGlj
X2Nhc3Q8U25hcHNob3RSZWdpb24+KHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4obWVzc2FnZS5n
ZXQoIlNuYXBzaG90UmVnaW9uIl9zKSktPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3Bw
CmluZGV4IDc1MWU1YTFiN2MyZTc1ZTY1Nzk4ZjRmNThjZGZlZWU3OTBhOWI0OGUuLmIwZDQ4Mjll
ZDJhNWMzZThhMjcyOGNhMWE5Yjc3YTBjMTU4MjdhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5j
cHAKQEAgLTQ2LDEyICs0NiwxMiBAQCBib29sIFdlYkluc3BlY3RvclVJOjpjYW5Mb2FkKCkKIAog
U3RyaW5nIFdlYkluc3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd2Via2l0L2luc3BlY3Rvci9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMiKTsKKyAgICByZXR1cm4gInJlc291
cmNlOi8vL29yZy93ZWJraXQvaW5zcGVjdG9yL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyJfczsKIH0KIAogU3RyaW5nIFJlbW90ZVdlYkluc3BlY3RvclVJOjpsb2Nh
bGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTov
Ly9vcmcvd2Via2l0L2luc3BlY3Rvci9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMiKTsKKyAgICByZXR1cm4gInJlc291cmNlOi8vL29yZy93ZWJraXQvaW5zcGVjdG9y
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyJfczsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKaW5k
ZXggMzM4NGZhMjU4YzIwZjQ0NmYyMTJkYWUyYzI0ZGM5ZDgxMjJiYWQwMS4uNzZlNmNlZmU5MGRj
MDBiZTM4NGIzNTdmZDYxOTFlNmRlYWZhNDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xp
ZW50V1BFLmNwcApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnBy
ZXRLZXlFdmVudChjb25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKIAogc3RhdGljIHZvaWQgaGFu
ZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxh
dGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQogewotICAgIFN0cmluZyBjb21tYW5k
TmFtZSB7IGludGVycHJldEtleUV2ZW50KGV2ZW50KSB9OworICAgIGF1dG8gY29tbWFuZE5hbWUg
PSBTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKIAogICAgIGlm
ICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbW1h
bmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgdm9p
ZCBoYW5kbGVLZXlQcmVzcyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25z
dCBQbGF0Zm9ybUtleQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwg
S2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCiB7Ci0g
ICAgU3RyaW5nIGNvbW1hbmROYW1lIHsgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpIH07CisgICAg
YXV0byBjb21tYW5kTmFtZSA9IFN0cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudChl
dmVudCkpOwogICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBh
Z2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwCmluZGV4IDc2NDQzYTk0MjU0YWU0ZmU4ZTU4ZjgwN2JhYTUyMTU2YzM2N2QxMWQuLmM3
N2ZmNzhjZDNjZDk2MjdkMWFlN2I5MzBjODE0NTcwOTQ2NDUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTI2OCw3
ICsyNjgsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KFdlYkNv
cmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnRO
YW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFuZCA9IGZy
YW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZldmVudCkg
fSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nOjpm
cm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChrZXlFdmVu
dC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8gV2Vi
S2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCmluZGV4
IGEyMTYzZmQwOTJiNDU0M2NhYTVhNTIwOTFkYjBhMTMzMzExZWM2ODQuLjM1YzI4OTdhYzg4NzNi
MTc0MzFmOWVkNTY3YjIxYzk5YmZiMjNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIEhSRVNVTFQgQWNj
ZXNzaWJsZVRleHQ6OnNldEF0dHJpYnV0ZXMobG9uZyBzdGFydE9mZnNldCwgbG9uZyBlbmRPZmZz
ZXQsIEJTVFIqIGF0CiAvLyBJQWNjZXNzaWJsZTIKIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6Omdl
dF9hdHRyaWJ1dGVzKEJTVFIqIGF0dHJpYnV0ZXMpCiB7Ci0gICAgV1RGOjpTdHJpbmcgdGV4dCgi
dGV4dC1tb2RlbDphMSIpOworICAgIFdURjo6U3RyaW5nIHRleHQoInRleHQtbW9kZWw6YTEiX3Mp
OwogICAgICphdHRyaWJ1dGVzID0gQlN0cmluZyh0ZXh0KS5yZWxlYXNlKCk7CiAgICAgcmV0dXJu
IFNfT0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Rh
dGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5j
cHAKaW5kZXggZjEzMTZkZTQ2YzIxMzVhNmQyNmZhYjlkMTQ0ZGViM2Y4MWYwODkzOC4uMDFhNjEy
ZmRhMzI4OWQ5NjdjYTk2NzJjYzQyM2UxZDM1ZGE1NTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEhSRVNV
TFQgV2ViQ29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRz
KF9DT01fT3V0cHRyX29wdF8KICAgICBJdGVyYXRvciBlbmQgPSBqc09iamVjdFR5cGVOYW1lcy0+
ZW5kKCk7CiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gdHlwZUNvdW50TWFwOwogICAgIGZvciAo
SXRlcmF0b3IgY3VycmVudCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5iZWdpbigpOyBjdXJyZW50ICE9
IGVuZDsgKytjdXJyZW50KQotICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZyB7IGN1cnJl
bnQtPmtleSB9LCBjdXJyZW50LT52YWx1ZSk7CisgICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3Ry
aW5nOjpmcm9tTGF0aW4xKGN1cnJlbnQtPmtleSksIGN1cnJlbnQtPnZhbHVlKTsKIAogICAgIENP
TVB0cjxJUHJvcGVydHlCYWcyPiByZXN1bHRzKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxpbnQ+
OjpjcmVhdGVJbnN0YW5jZSh0eXBlQ291bnRNYXApKTsKICAgICByZXN1bHRzLmNvcHlSZWZUbyh0
eXBlTmFtZXNBbmRDb3VudHMpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIEhSRVNVTFQgV2ViQ29yZVN0
YXRpc3RpY3M6OmphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzKF9DT01fT3V0cHRyX29wdF8gSVBy
b3BlcnR5CiAgICAgSXRlcmF0b3IgZW5kID0ganNPYmplY3RUeXBlTmFtZXMtPmVuZCgpOwogICAg
IEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3VudE1hcDsKICAgICBmb3IgKEl0ZXJhdG9yIGN1
cnJlbnQgPSBqc09iamVjdFR5cGVOYW1lcy0+YmVnaW4oKTsgY3VycmVudCAhPSBlbmQ7ICsrY3Vy
cmVudCkKLSAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmcgeyBjdXJyZW50LT5rZXkgfSwg
Y3VycmVudC0+dmFsdWUpOworICAgICAgICB0eXBlQ291bnRNYXAuc2V0KFN0cmluZzo6ZnJvbUxh
dGluMShjdXJyZW50LT5rZXkpLCBjdXJyZW50LT52YWx1ZSk7CiAKICAgICBDT01QdHI8SVByb3Bl
cnR5QmFnMj4gcmVzdWx0cyhBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8aW50Pjo6Y3JlYXRlSW5z
dGFuY2UodHlwZUNvdW50TWFwKSk7CiAgICAgcmVzdWx0cy5jb3B5UmVmVG8odHlwZU5hbWVzQW5k
Q291bnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDFjN2FmZDA1MzFhOTJmMzI3YzMzNmI2
NWYzYTEyZTA5MzJhNjhmZDYuLmIyMzkzNzYyNDBkYzlkMjMwMWZlNWM1OTRiNzE3NDRkZTZlMjI1
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDU0LDcgKzQ1NCw3IEBAIGJvb2wgV2ViRWRp
dG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZSwgS2V5Ym9h
cmRFdmVudCoga2UpCiAgICAgICAgIGlmIChkb21FbGVtZW50KSB7CiAgICAgICAgICAgICBJRE9N
SFRNTElucHV0RWxlbWVudCogZG9tSW5wdXRFbGVtZW50OwogICAgICAgICAgICAgaWYgKFNVQ0NF
RURFRChkb21FbGVtZW50LT5RdWVyeUludGVyZmFjZShJSURfSURPTUhUTUxJbnB1dEVsZW1lbnQs
ICh2b2lkKiopJmRvbUlucHV0RWxlbWVudCkpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGNv
bW1hbmQgeyBtX3dlYlZpZXctPmludGVycHJldEtleUV2ZW50KGtlKSB9OworICAgICAgICAgICAg
ICAgIGF1dG8gY29tbWFuZCA9IFN0cmluZzo6ZnJvbUxhdGluMShtX3dlYlZpZXctPmludGVycHJl
dEtleUV2ZW50KGtlKSk7CiAgICAgICAgICAgICAgICAgLy8gV2UgYWxsb3cgZW1wdHkgY29tbWFu
ZHMgaGVyZSBiZWNhdXNlIHRoZSBhcHAgY29kZSBhY3R1YWxseSBkZXBlbmRzIG9uIHRoaXMgYmVp
bmcgY2FsbGVkIGZvciBhbGwga2V5IHByZXNzZXMuCiAgICAgICAgICAgICAgICAgLy8gV2UgbWF5
IHdhbnQgdG8gcmV2aXNpdCB0aGlzIGxhdGVyIGJlY2F1c2UgaXQgZG9lc24ndCByZWFsbHkgbWFr
ZSBzZW5zZSB0byBzZW5kIGFuIGVtcHR5IGNvbW1hbmQuCiAgICAgICAgICAgICAgICAgZm9ybURl
bGVnYXRlLT5kb1BsYXRmb3JtQ29tbWFuZChkb21JbnB1dEVsZW1lbnQsIEJTdHJpbmcoY29tbWFu
ZCksIGtpdChlLT5kb2N1bWVudCgpLmZyYW1lKCkpLCAmcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBmYTk1MzcyNzJmNzI2ZmVkMzNjN2JmMjJlYTNlYjM4OGMzOTRj
ZDExLi43Y2UyMDcxMjBjZDZmNzZlMGRiNzBmZGVhNDBlMTgzM2NiNTZlZGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03NTAsNyArNzUwLDcgQEAgUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXMKIHsKICAgICAvLyBGSVhNRTogTmVlZCBDaGlja2VuQ2F0IHRvIGluY2x1ZGUgQ0ZO
ZXR3b3JrL0NGVVJMRXJyb3IuaCB0byBnZXQgdGhlc2UgdmFsdWVzCiAgICAgLy8gQWx0ZXJuYXRp
dmVseSwgd2UgY291bGQgY3JlYXRlIG91ciBvd24gZXJyb3IgZG9tYWluL2NvZGVzLgotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVl
c3QudXJsKCksIFN0cmluZygiQ2FuY2VsbGVkIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmluZygi
Q2FuY2VsbGVkIl9zKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CkBAIC03
ODAsNyArNzgwLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90
U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb24KIAogUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKSBjb25zdAogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCByZXNwb25zZS51cmwoKSwgU3RyaW5nKCJG
aWxlIGRvZXMgbm90IGV4aXN0LiIpKTsKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmco
V2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2UudXJsKCksIFN0cmluZygiRmlsZSBk
b2VzIG5vdCBleGlzdC4iX3MpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNs
aWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggN2Y1MjFk
YTBmZGEyNGE1NzQwNjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4uNzcyNGZiMDAyYTFhYTI4MDM2YjJm
MGZiMmNkMDRkNjIxYjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAg
LTIxNDcsNyArMjE0Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJl
c3NFdmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBjb21tYW5kID0gZnJh
bWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSB9
KTsKKyAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmc6OmZy
b21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkpOwogCiAgICAgaWYgKGtleUV2ZW50
LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJL
aXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBo
b3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Ig
c2hvdWxkIGJlIHRyZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9z
dG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
c3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAwMDA1ZDAxMGQzNWJjNmM1OGMx
ODY5ZDExYWM3MTgyZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0ODYxNDQwNTZjZTgzNDhmNTk1MDlm
NTZkZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRh
dGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL3N0b3JhZ2Uv
V2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3LDUgQEAgU3RyaW5nIFdlYkRhdGFi
YXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgICAgICAmJiA6
OkdldExhc3RFcnJvcigpICE9IEVSUk9SX0FMUkVBRFlfRVhJU1RTKQogICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkpOwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YWJhc2VEaXJlY3RvcnkpOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MjEzMzE1
ZmI3YmI3YTVkODY0Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjM0OGQ4NWFiOTZkYmJhZmYxYjRkNmM3
MzkwYTEzM2VmMjA4YmEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBT
dHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5
c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0
b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQu
Y3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdD
YW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENy
YXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNj
cmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOl0pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0
ZSBzZXBlcmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGUxOTY2OGNjZDc0OWJiZTlhNjg4ZTA2ODQz
NzA4OGZkMzY1OGFmODYuLmM4ZTgzMDJiZjI5N2EzMTE0ZGUyMDNjMzViMTIzOWYxMjUzMGQxNzIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE3
NSwxMCArMTE3NSwxMCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVDb250cm9sQ29tbWFuZChjb25zdCBj
aGFyKiBjb21tYW5kKQogewogICAgIGlmICghc3RyY21wKCIjQ0hFQ0sgRk9SIEFCQU5ET05FRCBE
T0NVTUVOVFMiLCBjb21tYW5kKSkgewogICAgICAgICAvLyBEdW1wUmVuZGVyVHJlZSBkb2VzIG5v
dCBzdXBwb3J0IGNoZWNraW5nIGZvciBhYmFuZG9uZGVkIGRvY3VtZW50cy4KLSAgICAgICAgU3Ry
aW5nIHJlc3VsdCgiXG4iKTsKKyAgICAgICAgQ1N0cmluZyByZXN1bHQoIlxuIik7CiAgICAgICAg
IHByaW50ZigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluXG4iKTsKICAgICAgICAgcHJpbnRmKCJD
b250ZW50LUxlbmd0aDogJXVcbiIsIHJlc3VsdC5sZW5ndGgoKSk7Ci0gICAgICAgIGZ3cml0ZShy
ZXN1bHQudXRmOCgpLmRhdGEoKSwgMSwgcmVzdWx0Lmxlbmd0aCgpLCBzdGRvdXQpOworICAgICAg
ICBmd3JpdGUocmVzdWx0LmRhdGEoKSwgMSwgcmVzdWx0Lmxlbmd0aCgpLCBzdGRvdXQpOwogICAg
ICAgICBwcmludGYoIiNFT0ZcbiIpOwogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiNFT0ZcbiIp
OwogICAgICAgICBmZmx1c2goc3Rkb3V0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCA0ZDY0NzUwNjhjM2RhYmRkMjRj
MzFmYzEwZGQ4Yjg0MGIxMDRiZDNkLi42NDU1ZTgxYWYxZjJhNGE1NWRlYzBlYmFiOTMxZDAwNTk1
NjBhMTAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1Ro
cmVhZENvcGllci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIHsKLSAgICBT
dHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJf
cyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQ
RUNUX1RSVUUob3JpZ2luYWwuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUo
Y29weS5pbXBsKCktPmhhc09uZVJlZigpKTsKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVTVChXVEZfQ3Jv
c3NUaHJlYWRDb3BpZXIsIENvcHlMVlN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3Bp
ZXIsIE1vdmVSVlN0cmluZykKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAg
ICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhy
ZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS5pbXBsKCkt
Pmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfTlVMTChvcmlnaW5hbC5pbXBsKCkpOwpAQCAtNTMs
NyArNTMsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogCiBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQogewot
ICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0Il9zIH07CiAgICAgU3RyaW5nIG9yaWdpbmFsMiB7IG9yaWdpbmFsIH07CiAgICAgYXV0byBj
b3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfRVEo
b3JpZ2luYWwuaW1wbCgpLT5yZWZDb3VudCgpLCAydSk7CkBAIC02Myw3ICs2Myw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdUd29SZWYpCiAKIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZPcHRpb25hbFN0cmluZykKIHsKLSAgICBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1dG8gY29weSA9IGNyb3NzVGhy
ZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWwtPmltcGwoKS0+aGFz
T25lUmVmKCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwpA
QCAtNzIsNyArNzIsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9u
YWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZPcHRpb25hbFN0
cmluZykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCIgfTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gb3JpZ2luYWwgeyAiMTIzNCJfcyB9OwogICAgIGF1
dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQRUNU
X1RSVUUoY29weS0+aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2lu
YWwtPmltcGwoKSk7CkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVy
LCBNb3ZlUlZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENv
cHlSVk9wdGlvbmFsU3RyaW5nSGF2aW5nVHdvUmVmKQogewotICAgIFN0cmluZyBzdHJpbmcgeyAi
MTIzNCIgfTsKKyAgICBTdHJpbmcgc3RyaW5nIHsgIjEyMzQiX3MgfTsKICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gb3JpZ2luYWwgeyBzdHJpbmcgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1Ro
cmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9FUShvcmlnaW5hbC0+aW1wbCgpLT5yZWZD
b3VudCgpLCAydSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDg2OGNjYmI5ZjMzNDkxYjUzYTRmZjI1ODJkNWRhYTVhZTUwMjY0ZDAuLmRiMjQ2
NTIzOTY4NjUxNjg4ODFiNzQxNDdjZjNjNGMzYTg2YTRiODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0
ZToKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgTWFwcGluZ01pc3NpbmdGaWxlKQogewogICAgIGJv
b2wgc3VjY2VzczsKLSAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBtYXBwZWRGaWxlRGF0
YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIiksIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2Rl
OjpTaGFyZWQsIHN1Y2Nlc3MpOworICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1hcHBl
ZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiX3MpLCBGaWxlU3lzdGVtOjpNYXBw
ZWRGaWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3VjY2Vzcyk7
CiAgICAgRVhQRUNUX1RSVUUoIW1hcHBlZEZpbGVEYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwCmluZGV4IDllNmRjOWQyNTMyNWM1MzBjNDI5N2Iw
MWY0YzM1MjRlOTU3MjVjYTguLjdmOTdiY2QyNzQzNzdiYmIwYmRhOWQ5OThmNDhkY2JlYzdhMTAx
MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcApAQCAt
NDksNjEgKzQ5LDYxIEBAIFRFU1QoV1RGLCBIZXhOdW1iZXIpCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyKSk7
Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJBIiwgYnVpbGRlcik7CisgICAgICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCJBIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGlu
dGVnZXIsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1
aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAxLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoImEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMiwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZChoZXgoaW50ZWdlciwgMywgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMGEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwYSJf
cywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCA0LCBMb3dlcmNhc2UpKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZCho
ZXgobGFyZ2VJbnRlZ2VyKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwg
YnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVy
KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaGV4KGxhcmdlSW50ZWdlciwgMikpOwotICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiRkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiRkFDRSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChieXRlKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiODAiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oaW50ZWdlciksIDIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjBBIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
QSJfcywgYnVpbGRlcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCmluZGV4IGU3NjcyNTg5NTZlMzg5ZGI5Y2FlZmVjZGQ0
MzJkNDg5M2FjMDA3YzguLmE0ODdlNTdlOWQwNDYxN2Q0OWRlOGRhMTkxMmJlNDgyNjE2ODMwNTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3Bw
CkBAIC02MywyNSArNjMsMjUgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENvbnN0
cnVjdG9yKQogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXBwZW5kKQogewogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoImFi
Y2QiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVy
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiZWZnaCIsIDMpOwotICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1
aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5hcHBlbmQoIiIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJfcywgYnVpbGRlcik7CiAKICAgICBidWls
ZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycygiIiwgMCk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIp
OwogICAgIGJ1aWxkZXIxLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlci5jaGFyYWN0ZXJzOCgpLCBi
dWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyMS5sZW5n
dGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0
NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiX3MsIGJ1aWxkZXIpOwogCiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyMjsKICAgICBidWlsZGVyMi5yZXNlcnZlQ2FwYWNpdHko
MTAwKTsKQEAgLTEzMCw1OSArMTMwLDU5IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVu
ZEludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJl
YW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudChTdHJpbmco
ZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7
CiB9CiAKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFZhcmlhZGljQXBwZW5kKQogewogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChT
dHJpbmcoIjAxMjM0NTY3ODkiKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5IiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSJfcykpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywg
YnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmNkIik7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCIsIGJ1aWxkZXIpOworICAgICAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiX3MsIGJ1aWxkZXIpOwogICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnZScpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0g
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRl
cik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsICdDJywgIiIpOwot
ICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlQUJDIiwgYnVpbGRl
cik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNk
IiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGUiX3MsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAi
QiIsICdDJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlQUJDIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iiks
ICJhYmNkIiwgYnVsbHNleWUsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5Il9zKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOwogICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUs
IDEpKSwgYnVpbGRlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIs
ICdDJywgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsICdD
JywgIiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZCIsIFN0cmluZygmYnVsbHNleWUsIDEpLCAiQUJDIiksIGJ1aWxkZXIpOwogICAgIH0K
IAogICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1
aWxkZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGFuZCBkb24ndCBmaXQgaW4gdGhlIGV4aXN0aW5n
IGNhcGFjaXR5LgogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpLCAiYWJjZCIsICdlJywgIiIpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAi
Iik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1
aWxkZXIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAg
RVhQRUNUX0xUKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFC
IiwgU3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBTdHJpbmdCdWlsZGVyIGZyb20gOC1i
aXQgdG8gMTYtYml0LCBidXQgd291bGQgaGF2ZSBmaXQgaW4gdGhlIGNhcGFjaXR5IGlmIHRoZSB1
cGNvbnZlcnQgd2Fzbid0IG5lY2Vzc2FyeS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAn
ZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIs
IGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHko
MzIpOwogICAgICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzOEJpdCgpKTsKICAgICAgICAgRVhQ
RUNUX0dFKGJ1aWxkZXIuY2FwYWNpdHkoKSwgYnVpbGRlci5sZW5ndGgoKSArIDMpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCBidWxsc2V5ZSwgIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiX3MpLCAiQiIsIGJ1bGxzZXllLCAiIik7CiAgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZUFCIiwg
U3RyaW5nKCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKICAgICB9CiB9CkBAIC0xOTIsMzIgKzE5
MiwzMiBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBTdHJp
bmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5Il9z
KSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmlu
ZygpLmltcGwoKSk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgYnVpbGRl
ci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNh
c2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFj
aXR5KDIwMCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJp
bmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVz
dWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0
cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5k
KCJERUYiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJp
bmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiJfcyksIHN0cmlu
ZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZl
Y3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAgIHN0cmluZzEgPSBidWls
ZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCIjIyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAK
IFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKQEAgLTIy
NywxMyArMjI3LDEzIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVD
YXBhY2l0eSkKICAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAg
ICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAg
ICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWls
ZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLmltcGwoKSk7CiAgICAgRVhQRUNUX0VRKHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwogCiAgICAgLy8gQ2hh
bmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgi
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSJfcyks
IHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
IGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgogICAgIGJ1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KDIwMCk7CkBAIC0yNDEsMTkgKzI0MSwxOSBAQCBURVNUKFN0cmluZ0J1aWxkZXJU
ZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2FwYWNpdHksIGJ1aWxkZXIu
Y2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVy
LmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAgICAgYnVp
bGRlci5hcHBlbmQoIkFCQyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJfcyksIHN0cmluZyk7CiAKICAg
ICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVy
LgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcx
ID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKICAgICBFWFBFQ1RfRVEoY2Fw
YWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7CiAgICAgRVhQRUNUX0VRKHN0cmluZzEuY2hhcmFj
dGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIw
MTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
Il9zKSwgc3RyaW5nMSk7CiAgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1
aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiX3MpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
X3MpLCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CkBAIC0yNjIsNyArMjYy
LDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQog
ICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgp
KTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKIH0KIAogVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgQ2xlYXIpCkBAIC0yOTAsMTUgKzI5MCwxNSBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBSZXNpemUpCiAgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKICAgICBi
dWlsZGVyLnNocmluaygxMCk7CiAgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSJfcywgYnVpbGRlcik7CiAgICAgYnVpbGRl
ci5zaHJpbmsoOCk7CiAgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1NjciX3MsIGJ1aWxkZXIpOwogCiAgICAgYnVpbGRlci50b1N0cmlu
ZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDcpOwogICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5s
ZW5ndGgoKSk7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsK
KyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiJfcywgYnVpbGRlcik7CiAgICAgYnVp
bGRlci5zaHJpbmsoMCk7CiAgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7CiB9CkBAIC0zMTEsMjEg
KzMxMSwyMSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBFcXVhbCkKICAgICBFWFBFQ1RfVFJV
RShlcXVhbChidWlsZGVyMSwgc3RhdGljX2Nhc3Q8TENoYXIqPigwKSwgMCkpOwogICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmcoKSA9
PSBidWlsZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiKSk7
CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gU3RyaW5nKCJhYmMiX3MpKTsKIAogICAgIGJ1
aWxkZXIxLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVzZXJ2ZUNhcGFjaXR5KDMyKTsK
ICAgICBidWlsZGVyMi5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0
eSg2NCk7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gYnVpbGRlcjIpOwotICAgIEVYUEVD
VF9UUlVFKGJ1aWxkZXIxID09IFN0cmluZygiMTIzIikpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
ZygiMTIzIikgPT0gYnVpbGRlcjEpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IFN0cmlu
ZygiMTIzIl9zKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiX3MpID09IGJ1aWxkZXIx
KTsKIAogICAgIGJ1aWxkZXIyLmFwcGVuZCgiNDU2Iik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgIT0gYnVpbGRlcjIpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IGJ1aWxkZXIxKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyIpICE9IGJ1aWxkZXIyKTsKLSAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMiAhPSBTdHJpbmcoIjEyMyIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IjEyMyJfcykgIT0gYnVpbGRlcjIpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmlu
ZygiMTIzIl9zKSk7CiAgICAgYnVpbGRlcjIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlm
eVN0cmluZygpLgogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKIApAQCAt
MzUyLDcgKzM1Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvQXRvbVN0cmluZykKICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQoIjEyMyIpOwogICAg
IEF0b21TdHJpbmcgYXRvbVN0cmluZyA9IGJ1aWxkZXIudG9BdG9tU3RyaW5nKCk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiMTIzIiksIGF0b21TdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmco
IjEyMyJfcyksIGF0b21TdHJpbmcpOwogCiAgICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjU2
KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLnNob3VsZFNocmlua1RvRml0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBhNzYyYmUwYTIy
NzFiODY3ZDYyOTBkZDI3YTFkMGIzOWQ1MjIxNGRmLi5iYjMzMTY1YjY2Nzc1MzVmNGJlNmU0NDFk
ZWJjMjE3YWRmMjhmYjNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdJbXBsLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdJbXBsLmNwcApAQCAtNDQwLDE0ICs0NDAsMTQgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxTdGFy
dHNXaXRoSWdub3JpbmdBU0NJSUNhc2VXaXRoRW1wdHkpCiAKIFRFU1QoV1RGLCBTdGFydHNXaXRo
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKQogewotICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVT
VCIpOworICAgIFN0cmluZyBzdHJpbmcoIlRlc3QgdEVTVCJfcyk7CiAgICAgQVNTRVJUX1RSVUUo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHQiKSk7CiAg
ICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
ICJ0ZXN0IHRlIikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXN0IikpOwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNX
aXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGV4IikpOwogCiAgICAg
QVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICIi
KSk7Ci0gICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShT
dHJpbmcoIiIpLCAiIikpOworICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UoZW1wdHlTdHJpbmcoKSwgIiIpKTsKIAogICAgIEFTU0VSVF9GQUxTRShzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0cmluZygpLCAidCIpKTsKICAgICBBU1NF
UlRfRkFMU0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgIiIp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJh
dG9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMu
Y3BwCmluZGV4IDg4MDk0ZmIxYmIyYzRkYWU3NDMzNDk2NzUxNzUwNjk2NjEyZTExZmMuLmI0NDJl
NDM2OGMwM2RiN2JhNjMwYzdhZWEyYTk4MzVkMzQ4YjQ0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcApAQCAtNDIsMTEgKzQyLDEx
IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChXVEYsIFN0cmluZ09wZXJhdG9y
cykKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJTdHJpbmciKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJT
dHJpbmciX3MpOwogICAgIEF0b21TdHJpbmcgYXRvbVN0cmluZygiQXRvbVN0cmluZyIpOwogICAg
IEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIHsgIkFTQ0lJTGl0ZXJhbCJfcyB9OwogCi0gICAgU3RyaW5n
IHN0cmluZ1ZpZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciIH07CisgICAgU3RyaW5nIHN0cmluZ1Zp
ZXdCYWNraW5nIHsgIlN0cmluZ1ZpZXciX3MgfTsKICAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcg
eyBzdHJpbmdWaWV3QmFja2luZyB9OwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0cmluZ0NvcHlD
b3VudCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdW
aWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmlu
ZGV4IGMyNTMzODJkMzRhMTc4MzI2YzA5YzdjZGVmNWM3NTdiZjc4ZWFkMDQuLmJhZjRkN2FjYmVl
M2Y2NjY2ZmM5ZjljNDA5YTNjZTBjZTE3NzQxNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFRFU1QoV1RGLCBTdHJp
bmdWaWV3U3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZ1ZpZXcgbnVsbFZpZXc7
CiAgICAgU3RyaW5nVmlldyBlbXB0eVZpZXcgPSBTdHJpbmdWaWV3OjplbXB0eSgpOwotICAgIFN0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBTdHJpbmcgc3RyaW5nV2l0
aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKICAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVy
cyhzdHJpbmdXaXRoQ2hhcmFjdGVycyk7CiAKICAgICBFWFBFQ1RfVFJVRSh2aWV3V2l0aENoYXJh
Y3RlcnMuc3RhcnRzV2l0aChudWxsVmlldykpOwpAQCAtODQsNyArODQsNyBAQCBURVNUKFdURiwg
U3RyaW5nVmlld0VtcHR5VnNOdWxsKQogICAgIGVsc2UKICAgICAgICAgU1VDQ0VFRCgpOwogCi0g
ICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyIpKTsKKyAgICBT
dHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxvIl9zKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKHZpZXdXaXRoQ2hhcmFjdGVycy5pc051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KHZpZXdXaXRoQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJ
dGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVtcHR5KCkuY29kZVVuaXRzKCksIHsgfSkpOwogICAgIEVY
UEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmdyYXBo
ZW1lQ2x1c3RlcnMoKSwgeyB9KSk7CiAKLSAgICBTdHJpbmcgaGVsbygiaGVsbyIpOworICAgIFN0
cmluZyBoZWxvKCJoZWxvIl9zKTsKICAgICBTdHJpbmdWaWV3IGhlbG9WaWV3KGhlbG8pOwogCiAg
ICAgYXV0byBjb2RlUG9pbnRzID0gaGVsb1ZpZXcuY29kZVBvaW50cygpOwpAQCAtMTU2LDcgKzE1
Niw3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9FUSgqY29k
ZVBvaW50c0l0ZXJhdG9yLCAnaCcpOwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHNhdmVkSXRl
cmF0b3I7CiAgICAgRVhQRUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdsJyk7Ci0gICAgU3Ry
aW5nIHdlYmtpdCgid2Via2l0Iik7CisgICAgU3RyaW5nIHdlYmtpdCgid2Via2l0Il9zKTsKICAg
ICBhdXRvIHdlYmtpdENvZGVQb2ludHMgPSBTdHJpbmdWaWV3KHdlYmtpdCkuY29kZVBvaW50cygp
OwogICAgIGNvZGVQb2ludHNJdGVyYXRvciA9IHdlYmtpdENvZGVQb2ludHMuYmVnaW4oKTsKICAg
ICArK2NvZGVQb2ludHNJdGVyYXRvcjsKQEAgLTk4MywxMCArOTgzLDEwIEBAIFRFU1QoV1RGLCBT
dHJpbmdWaWV3U3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycykKIAogVEVT
VChXVEYsIFN0cmluZ1ZpZXdJc0FsbEFTQ0lJKQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZ1Zp
ZXcoU3RyaW5nKCJIZWxsbyIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
Z1ZpZXcoU3RyaW5nKCJDb2NvYSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxTRShT
dHJpbmdWaWV3KFN0cmluZygi8J+TsSIpKS5pc0FsbEFTQ0lJKCkpOwotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmdWaWV3KFN0cmluZygiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNU
X1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIl9zKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBF
WFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiX3MpKS5pc0FsbEFTQ0lJKCkpOwor
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxhdGluMSgi8J+TsSIpKS5p
c0FsbEFTQ0lJKCkpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmdWaWV3KFN0cmluZzo6ZnJvbUxh
dGluMSgiXHUwMDgwIikpLmlzQWxsQVNDSUkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmll
dyhTdHJpbmcoYml0d2lzZV9jYXN0PGNvbnN0IFVDaGFyKj4odSJIZWxsbyIpKSkuaXNBbGxBU0NJ
SSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJM
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5jcHAKaW5kZXggODM3MDU3
MGFhZmE0MTMxODI0ZTNkOGRhMzg4Njk5YmEyOWM4YmNlOC4uNTUxN2FmNWQ3NDMxMDU1OTdkM2Q4
MDAxNWI2Y2M3MjQ5ZGQ5NjZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVVJMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3Bw
CkBAIC02MCwxNiArNjAsMTYgQEAgVEVTVF9GKFdURl9VUkwsIFVSTENvbnN0cnVjdG9yQ29uc3RD
aGFyKQogICAgIEVYUEVDVF9UUlVFKGt1cmwuaXNWYWxpZCgpKTsKIAogICAgIEVYUEVDVF9FUShr
dXJsLnByb3RvY29sKCkgPT0gImh0dHAiLCB0cnVlKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ3
d3cuZXhhbXBsZS5jb20iKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygid3d3LmV4YW1wbGUuY29tIl9zKSwga3VybC5ob3N0KCkudG9TdHJpbmcoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoISFrdXJsLnBvcnQoKSk7CiAgICAgRVhQRUNUX0VRKDgwODAsIGt1cmwu
cG9ydCgpLnZhbHVlKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIiksIGt1cmwu
dXNlcigpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCIpLCBrdXJsLnBhc3N3b3Jk
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRleC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25l
bnQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInVzZXJuYW1lIl9zKSwga3VybC51c2VyKCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIl9zKSwga3VybC5wYXNzd29yZCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCJfcyksIGt1cmwucGF0aCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJpbmRleC5odG1sIl9zKSwga3VybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIl9zKSwga3VybC5xdWVyeSgpKTsKICAgICBFWFBF
Q1RfVFJVRShrdXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmcmFnbWVudCJfcyksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwogfQog
CiBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwgdXJsQXNTdHJpbmcpCkBAIC04MCw0
MyArODAsNDMgQEAgc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5n
KQogVEVTVF9GKFdURl9VUkwsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCiB7CiAgICAgYXV0byB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206
ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9y
dCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAi
X3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3VzZXJuYW1lOkB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwj
ZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovLzpwYXNzd29yZEB3d3cuZXhh
bXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xI
b3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVD
VF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206L2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVu
dCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1
cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsK
IAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAK
ICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJm
aWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9
IGNyZWF0ZVVSTCgiZmlsZTovLy9hIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8v
IiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImZp
bGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0
ZVVSTCgiYXNkZjovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4
Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjov
L3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2Ev
Yi9jIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIiksIHVybC5wcm90b2NvbEhv
c3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iX3MpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKIH0KIAogVEVTVF9GKFdURl9VUkwsIFVSTERhdGFVUklTdHJp
bmdTaGFyaW5nKQpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJp
bmdRdWVyeVBhcmFtZXRlcnMpCiB7CiAgICAgVVJMIHVybDEgPSBjcmVhdGVVUkwoInd3dy53ZWJr
aXQub3JnLz8iX3MpOwogICAgIFVSTCB1cmwyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTE9dmFsMSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRlc3RWZWN0b3IxMiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMiB7IHsgImtleTEiX3MsICJ2YWwx
Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDEsIHVy
bDIpLCB0ZXN0VmVjdG9yMTIpOwogICAgIAogICAgIFVSTCB1cmwzMyA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwpAQCAtMzg4LDY3ICszODgsNjcgQEAg
VEVTVF9GKFdURl9VUkwsIFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKICAgICAKICAgICBV
UkwgdXJsMyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz8iX3MpOwogICAgIFVS
TCB1cmw0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzNCB7
eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IzNCB7IHsgImtleTEiX3MsICJ2YWwxIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDMsIHVybDQpLCB0ZXN0VmVjdG9yMzQpOwog
ICAgIAogICAgIFVSTCB1cmw1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tl
eTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjU2IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjU2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsNSwgdXJsNiksIHRlc3RW
ZWN0b3I1Nik7CiAgICAgCiAgICAgVVJMIHVybDEzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTE9dmFsMSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxNCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5MT12YWwxIl9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQge3si
a2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTMxNCB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDEzLCB1cmwxNCksIHRlc3RWZWN0b3IxMzE0KTsKICAgICAKICAgICBV
UkwgdXJsMTUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9z
KTsKICAgICBVUkwgdXJsMTYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
Mj12YWwyIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjE1MTYge3sia2V5MSIsICJ2YWwxIn0sIHsia2V5MiIsICJ2YWwyIn19OworICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7IHsgImtl
eTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0gfTsKICAgICBFWFBFQ1Rf
RVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE1LCB1cmwxNiksIHRlc3RWZWN0b3IxNTE2
KTsKICAgICAKICAgICBVUkwgdXJsMTEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9y
Zy8/a2V5Mj12YWwyJmtleTE9dmFsMSJfcyk7CiAgICAgVVJMIHVybDEyID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTM9dmFsMyZrZXkxPXZhbDEiX3MpOwotICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7eyJrZXkyIiwg
InZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEyIHsgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAi
a2V5MyJfcywgInZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMTEsIHVybDEyKSwgdGVzdFZlY3RvcjExMTIpOwogICAgIAogICAgIFVSTCB1cmwx
NyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwy
Il9zKTsKICAgICBVUkwgdXJsMTggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/
a2V5MSZrZXkzPXZhbDMiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMTcxOCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAidmFsMSJ9LCB7Imtl
eTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTggeyB7ImtleTEiX3MsICIiX3MgfSwgeyAi
a2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywg
InZhbDMiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJs
MTcsIHVybDE4KSwgdGVzdFZlY3RvcjE3MTgpOwogICAgIAogICAgIFVSTCB1cmwxOSA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxJmtleTI9dmFs
MiJfcyk7CiAgICAgVVJMIHVybDIwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcv
P2tleTM9dmFsMyZrZXkxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjE5MjAge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEifSwgeyJr
ZXkyIiwgInZhbDIifSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHsgeyAi
a2V5MSJfcywgIiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07
CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxOSwgdXJsMjApLCB0
ZXN0VmVjdG9yMTkyMCk7CiAgICAgCiAgICAgVVJMIHVybDIxID0gY3JlYXRlVVJMKCJodHRwOi8v
d3d3LndlYmtpdC5vcmcvPz8iX3MpOwogICAgIFVSTCB1cmwyMiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz8vP3Rlc3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMTIyIHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsi
PyIsICIifX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RW
ZWN0b3IyMTIyIHsgeyAiLz90ZXN0Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsK
ICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIxLCB1cmwyMiksIHRl
c3RWZWN0b3IyMTIyKTsKICAgICAKICAgICBVUkwgdXJsMjMgPSBjcmVhdGVVUkwoImh0dHA6Ly93
d3cud2Via2l0Lm9yZy8/PXRlc3QiX3MpOwogICAgIFVSTCB1cmwyNCA9IGNyZWF0ZVVSTCgiaHR0
cDovL3d3dy53ZWJraXQub3JnLz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07Cisg
ICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyMzI0IHsg
eyAiIl9zLCAiPSJfcyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDIzLCB1cmwyNCksIHRlc3RWZWN0b3IyMzI0KTsKICAg
ICAKICAgICBVUkwgdXJsMjcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8/Il9z
KTsKICAgICBVUkwgdXJsMjggPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz8vP3Rl
c3Q9dGVzdCJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRl
c3RWZWN0b3IyNzI4IHt7Ii8/dGVzdCIsICJ0ZXN0In0sIHsiPyIsICIifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNzI4IHsgeyAiLz90ZXN0
Il9zLCAidGVzdCJfcyB9LCB7ICI/Il9zLCAiIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVy
aW5nUXVlcnlQYXJhbWV0ZXJzKHVybDI3LCB1cmwyOCksIHRlc3RWZWN0b3IyNzI4KTsKICAgICAK
ICAgICBVUkwgdXJsMjkgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89dGVzdCJf
cyk7CiAgICAgVVJMIHVybDMwID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT0i
X3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjkzMCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjkzMCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9z
LCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwyOSwgdXJsMzApLCB0ZXN0VmVjdG9yMjkzMCk7CiAgICAgCiAgICAgVVJMIHVybDMxID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/PT8iX3MpOwogICAgIFVSTCB1cmwzMiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPT8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzEzMiB7eyIiLCAiPyJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIgeyB7ICIi
X3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVy
bDMxLCB1cmwzMiksIHRlc3RWZWN0b3IzMTMyKTsKICAgICAKICAgICBVUkwgdXJsMjUgPSBjcmVh
dGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT8iX3MpOwogICAgIFVSTCB1cmwyNiA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz0/Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI1MjYge3siIiwgIj8ifX07CisgICAg
VmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHsgeyAi
Il9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwyNSwgdXJsMjYpLCB0ZXN0VmVjdG9yMjUyNik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9WZWN0b3IuY3BwCmluZGV4IDI1NmE5ZTQwNjBjNzNhNTAwMWQyYTk1Y2JlMzI4MDQ5
OTQzNTU1NjMuLmEyMmViMjNjY2JmNzI3MDk0NzdiOGNlNTkwY2NjMjA0NDliNWEwOTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcApAQCAtODk1LDkgKzg5NSw5IEBA
IFRFU1QoV1RGX1ZlY3RvciwgTWFwTGFtYmRhTW92ZSkKIFRFU1QoV1RGX1ZlY3RvciwgTWFwRnJv
bUhhc2hNYXApCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOwotICAgIG1hcC5z
ZXQoU3RyaW5nIHsgImsxIiB9LCBTdHJpbmcgeyAidjEiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5n
IHsgImsyIiB9LCBTdHJpbmcgeyAidjIiIH0pOwotICAgIG1hcC5zZXQoU3RyaW5nIHsgImszIiB9
LCBTdHJpbmcgeyAidjMiIH0pOworICAgIG1hcC5zZXQoImsxIl9zLCAidjEiX3MpOworICAgIG1h
cC5zZXQoImsyIl9zLCAidjIiX3MpOworICAgIG1hcC5zZXQoImszIl9zLCAidjMiX3MpOwogCiAg
ICAgYXV0byBtYXBwZWQgPSBXVEY6Om1hcChtYXAsIFsmXSAoS2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPiYgcGFpcikgLT4gU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHBhaXIudmFsdWU7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAppbmRleCBiOTMzNGQ0
NWZiZGQ1MDI3MGYyMWY2NWExMGZjYmYzYjJhNGM1YjFhLi41YjIxNzJlYzAwYjc3NGY0ZmY5MTI1
YWQ1MWM1NWRlYjdkMjM2YjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9XVEZTdHJpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
RlN0cmluZy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQCBURVNUKFdURiwgU3RyaW5nQ3JlYXRpb25G
cm9tTGl0ZXJhbCkKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24g
c3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkubGVuZ3RoKCkpOwogICAgIEVYUEVD
VF9FUSgiRXhwbGljaXQgY29uc3RydWN0aW9uIHN5bnRheCIsIHN0cmluZ0Zyb21MaXRlcmFsVmlh
QVNDSUkpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkuaXM4Qml0
KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgi
KSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiRXhw
bGljaXQgY29uc3RydWN0aW9uIHN5bnRheCJfcyksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkp
OwogCiAgICAgU3RyaW5nIHN0cmluZ0Zyb21MaXRlcmFsID0gIlN0cmluZyBMaXRlcmFsIl9zdHI7
CiAgICAgRVhQRUNUX0VRKHN0cmxlbigiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5nRnJvbUxpdGVy
YWwubGVuZ3RoKCkpOwogICAgIEVYUEVDVF9FUSgiU3RyaW5nIExpdGVyYWwiLCBzdHJpbmdGcm9t
TGl0ZXJhbCk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWwuaXM4Qml0KCkpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zyb21MaXRlcmFs
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCJfcyksIHN0cmluZ0Zyb21M
aXRlcmFsKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0FTQ0lJKQpAQCAtNzAsNyArNzAsNyBAQCBU
RVNUKFdURiwgU3RyaW5nU3RhcnRzV2l0aEVtcHR5VnNOdWxsKQogewogICAgIFN0cmluZyBudWxs
U3RyaW5nOwogICAgIFN0cmluZyBlbXB0eVN0cmluZyA9IFdURjo6ZW1wdHlTdHJpbmcoKTsKLSAg
ICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0cmlu
Z1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdXaXRo
Q2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxTdHJpbmcpKTsKICAgICBFWFBFQ1RfVFJVRShzdHJp
bmdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKGVtcHR5U3RyaW5nKSk7CkBAIC0yMzEsNyArMjMx
LDcgQEAgVEVTVChXVEYsIFN0cmluZ051bWJlckludE1pbikKICAgICBzdGQ6OnN0cmluZyBleHBl
Y3RlZFN0cmluZzsKICAgICBzdHJpbmdTdHJlYW0gPj4gZXhwZWN0ZWRTdHJpbmc7CiAKLSAgICBF
WFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShyZXN1bHQgPT0gU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5n
LmNfc3RyKCkpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ1JlcGxhY2VXaXRoTGl0ZXJhbCkKQEAg
LTI5Myw1MSArMjkzLDUxIEBAIFRFU1QoV1RGLCBTdHJpbmdUb0RvdWJsZSkKICAgICBFWFBFQ1Rf
RVEoMC4wLCBlbXB0eVN0cmluZygpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiAKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgpKTsKLSAgICBF
WFBFQ1RfRVEoMC4wLCBTdHJpbmcoIjAiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEo
MC4wLCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmlu
ZygiMCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCi0gICAgRVhQ
RUNUX0VRKDEuMCwgU3RyaW5nKCIxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIx
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiX3MpLnRvRG91
YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGZhaWwgaWYgd2Ugc2Vl
IGxlYWRpbmcganVuawotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9Eb3VibGUoJm9rKSk7CisgICAg
RVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCJ4MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9r
KTsKIAogICAgIC8vIHN1Y2NlZWQgaWYgd2Ugc2VlIGxlYWRpbmcgc3BhY2VzCi0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiIDEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAx
Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIl9zKS50b0Rv
dWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBpZ25vcmUgdHJhaWxp
bmcganVuaywgYnV0IHJldHVybiBmYWxzZSBmb3IgIm9rIgogICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGFuIGluY29uc2lzdGVuY3kgd2l0aCB0b0ludCwgd2hpY2ggYWx3YXlzIGd1YXJhbnRlZXMKICAg
ICAvLyBpdCB3aWxsIHJldHVybiAwIGlmIGl0J3MgYWxzbyBnb2luZyB0byByZXR1cm4gZmFsc2Ug
Zm9yIG9rLgotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgpKTsKLSAg
ICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIxeCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwg
U3RyaW5nKCIxeCJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAog
ICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMgImlu
ZmluaXR5IgotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0RvdWJsZSgp
KTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9Eb3VibGUoJm9rKSk7
CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoKSk7Cisg
ICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSJfcykudG9Eb3VibGUoJm9rKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9rKTsKIAogICAgIC8vIHBhcnNlIG9ubHkgbnVtYmVycywgbm90IHNw
ZWNpYWwgdmFsdWVzIHN1Y2ggYXMgIm5hbiIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5h
biIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIikudG9Eb3Vi
bGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91YmxlKCkp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0RvdWJsZSgmb2spKTsKICAg
ICBFWFBFQ1RfRkFMU0Uob2spOwogfQogCiBURVNUKFdURiwgU3RyaW5naGFzSW5maXhTdGFydGlu
Z0F0KQogewotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmlzOEJpdCgpKTsKLSAgICBF
WFBFQ1RfVFJVRShTdHJpbmcoIlRlIikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmlu
Zygic3QiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5m
aXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmco
IlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAyKSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygic3QiKSwgMikp
OwotICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3Ry
aW5nKCJTVCIpLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5pczhCaXQo
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSJfcykuaXM4Qml0KCkpOworICAgIEVYUEVD
VF9UUlVFKFN0cmluZygic3QiX3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmco
IlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBFWFBFQ1RfRkFM
U0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAyKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoInN0Il9zLCAy
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0
KCJTVCJfcywgMikpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWb
vSIpLmlzOEJpdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiku
aXM4Qml0KCkpOwpAQCAtMzQ2LDEzICszNDYsMTMgQEAgVEVTVChXVEYsIFN0cmluZ2hhc0luZml4
U3RhcnRpbmdBdCkKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9Iiku
aGFzSW5maXhTdGFydGluZ0F0KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAxKSk7CiAgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nOjpmcm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0
cmluZzo6ZnJvbVVURjgoIuWbvSIpLCAxKSk7CiAKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpm
cm9tVVRGOCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMCkpOwot
ICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
Ojpmcm9tVVRGOCgi5LitIiksIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9tVVRG
OCgi5Lit5Zu9IikuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAgIEVYUEVDVF9G
QUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4
KCLkuK0iKSwgMikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nRXhpc3RpbmdIYXNoKQogewotICAg
IFN0cmluZyBzdHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIik7CisgICAgU3RyaW5nIHN0cmluZzEo
IlRlbXBsYXRlIExpdGVyYWwiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgp
KTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pbXBsKCktPmhhc0hhc2goKSk7CiAgICAgc3Ry
aW5nMS5pbXBsKCktPmhhc2goKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdURiwgU3RyaW5n
RXhpc3RpbmdIYXNoKQogCiBURVNUKFdURiwgU3RyaW5nVW5pY29kZUVxdWFsVUNoYXJBcnJheSkK
IHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiYWJjIik7CisgICAgU3RyaW5nIHN0cmluZzEoImFiYyJf
cyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVF
KHN0cmluZzEuaXM4Qml0KCkpOwogICAgIFVDaGFyIGFiW10gPSB7ICdhJywgJ2InIH07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lv
bnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAppbmRleCBmZTVjZTY5NDkwZmNmMzQzMGI3YTE0Yjc1ODUyZDRjOGVjMDFiODU5Li5h
OTk3MTIzNGMzYzIwY2YxNDVmZTU2NzBkYmFiOTllNmQzZTBjODE0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAK
QEAgLTE3OTIsNyArMTc5Miw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFyc2lu
Z0ZhaWx1cmVzKQogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJhe2EsYn0iX3MsIENvbnRlbnRFeHRl
bnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CiAKICAgICBjb25zdCBj
aGFyIG5vbkFTQ0lJWzJdID0gey0xLCAnXDAnfTsKLSAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJp
bmcgeyBub25BU0NJSSB9LCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1czo6Tm9uQVNDSUkpOworICAgIHRlc3RQYXR0ZXJuU3RhdHVzKFN0cmluZzo6ZnJvbUxh
dGluMShub25BU0NJSSksIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNl
U3RhdHVzOjpOb25BU0NJSSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceGZmIl9zLCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwog
ICAgIAogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhcXHJcXG4iX3MsIENvbnRlbnRFeHRlbnNp
b25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCA5ZTIwYTM0MWQ1
YjFjOGVkNDdlYTRiYzZlMmY0MjI4NTI3ZWExODA3Li45ZTM1ZDk1YmI1MWEwOWIwMDg1MzRkNzMz
NWQ4MjhhMDAwZWMyYzQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKICAgICAKLWNvbnN0IFN0cmluZyBG
aWxlTW9uaXRvclRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVN
b25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0
Iik7Ci1jb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhpcyBpcyBz
b21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRv
clRlc3REYXRhKCJUaGlzIGlzIGEgdGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JS
ZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwor
Y29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBj
aGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Il9zKTsKIAogY2xhc3MgRmlsZU1vbml0b3JUZXN0IDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAppbmRleCA3NzBiMDcyN2Zk
ZWYyOTViODJjZGIwNTI3OTQzMTEyMjk5YWNjOWYzLi43MjNkNTg4YWE0OWM4N2UzNjY0YjQ2ZjMx
ODBkZmQ3MDdmYzI3NWVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcApAQCAtNzQsOSArNzQsOSBAQCBURVNUKEhUVFBI
ZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogXCJcIiJfcywKICAgICAgICAgImE6IFwi
YUE/XHQgXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYikgKChjKSkiX3MsCi0gICAgICAgIFN0
cmluZyB7IG5vbkFTQ0lJQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1b3Rl
ZFBhaXJJbkNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlRdW90ZWRQYWlySW5R
dW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlDb21tZW50KSwKKyAg
ICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCksCisg
ICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJblF1b3RlKSwKICAg
ICB9KTsKICAgICAKICAgICBzaG91bGRCZUludmFsaWQoewpAQCAtOTUsNyArOTUsNyBAQCBURVNU
KEhUVFBIZWFkZXJGaWVsZCwgUGFyc2VyKQogICAgICAgICAiYTogKFxhKSJfcywKICAgICAgICAg
ImE6IFwiXGFcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKX0oKGMpKSJfcywKLSAgICAgICAg
U3RyaW5nIHsgZGVsSW5RdW90ZSB9LAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEoZGVsSW5R
dW90ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVjb21lKHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDE0NzE5MDAw
ZGUxZDNlNjQwYzdjY2NkZTYyOTQzZjRhNGY1MTUwNTEuLjU2YTU5ZjJkYTllNWE4MDlkMWM3M2Q3
NTdjYTBlOTEzYzI5MTA4MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9LZXllZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0tleWVkQ29kaW5nLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoS2V5ZWRDb2Rp
bmcsIFNldEFuZEdldERvdWJsZSkKIAogVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0U3RyaW5n
KQogewotICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2ViQ29yZTo6S2V5ZWRFbmNv
ZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6OmRlY29kZVN0cmluZywg
U3RyaW5nKCJXZWJLaXQiKSkpOworICAgIEVYUEVDVF9UUlVFKHRlc3RTaW1wbGVWYWx1ZSgmV2Vi
Q29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVTdHJpbmcsICZXZWJDb3JlOjpLZXllZERlY29kZXI6
OmRlY29kZVN0cmluZywgU3RyaW5nKCJXZWJLaXQiX3MpKSk7CiB9CiAKIFRFU1QoS2V5ZWRDb2Rp
bmcsIEdldE5vbkV4aXN0aW5nUmVjb3JkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAppbmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzEx
MDg1ZDU0OTVlMzljMWNkOTRkLi4wYWM5MDRkZDBlMzFkNTNlMjhkYTA2YTNkZmNiY2E0NWRmY2Jl
OTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGlj
U3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAgQEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAgICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3Ry
aW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQ
RUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIi
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3Qu
Y29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImNvbS50ZXN0LmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNv
bS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
LnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVr
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21h
aW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
IjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3Mp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xs
ZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50
ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
ImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVr
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3QueG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVz
dC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0
LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5j
b20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7
CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJy
NC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEodXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERv
bWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9uYWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFt
UGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOk
w7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5j
b20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUu
Y29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxl
LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9z
dCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21MYXRpbjEoIsOlw6TDtiIpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nOjpmcm9tTGF0aW4xKCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigi
w4XDhMOWIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCIudGVzdC5jb20iX3MpKTsKICAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi4uLi4iX3MpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApp
bmRleCA3MWVmZWFjY2ZiODdjZGZhOWEzNjhmOGI4Mzg3M2I0ZTVhM2FiZmQzLi5hNjI0MGEzNTMw
ZjE0Y2U5MjU1ZTI0NDhiYTc3MzEwNTQxZDgzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcApAQCAtNDMyLDggKzQzMiw4IEBA
IFRFU1QoUHVzaERhdGFiYXNlLCBNYW55SW5GbGlnaHRPcHMpCiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBzbnByaW50Zihz
Y29wZSwgc2l6ZW9mKHNjb3BlKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy90ZXN0LyVkIiwgaSk7
CiAgICAgICAgICAgICBzbnByaW50Zih0b3BpYywgc2l6ZW9mKHRvcGljKSwgInRvcGljXyVkIiwg
aSk7Ci0gICAgICAgICAgICByZWNvcmQuc2NvcGUgPSBTdHJpbmcgeyBzY29wZSB9OwotICAgICAg
ICAgICAgcmVjb3JkLnRvcGljID0gU3RyaW5nIHsgdG9waWMgfTsKKyAgICAgICAgICAgIHJlY29y
ZC5zY29wZSA9IFN0cmluZzo6ZnJvbUxhdGluMShzY29wZSk7CisgICAgICAgICAgICByZWNvcmQu
dG9waWMgPSBTdHJpbmc6OmZyb21MYXRpbjEodG9waWMpOwogCiAgICAgICAgICAgICBkYXRhYmFz
ZS5pbnNlcnRSZWNvcmQocmVjb3JkLCBbXShhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICAg
ICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDdhNDVlMGVmNDE0YmY3NDk3MTI5MmZj
MWNjMmFhODc0OGFkZDUxNS4uMWIxZDlmZjBmZTgxNjI5N2JhZWIwZjZkYTNjODVlYjVjZmYzYmUz
MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1
ZmZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBU
RVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mTWlz
c2luZ0ZpbGUpCiB7Ci0gICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIikpOworICAgIGF1dG8gYnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3Rf
ZXhpc3RpbmdfZmlsZSJfcykpOwogICAgIEFTU0VSVF9OVUxMKGJ1ZmZlcik7CiB9CiAKQEAgLTUy
LDcgKzUyLDcgQEAgVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRo
Q29udGVudHNPZkV4aXN0aW5nRmlsZSkKICAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsKICAgICBBU1NFUlRfTk9U
X05VTEwoYnVmZmVyKTsKICAgICBFWFBFQ1RfVFJVRShidWZmZXItPnNpemUoKSA9PSBzdHJsZW4o
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmlu
ZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21MYXRpbjEoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRl
c3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEo
KSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRW1wdHlGaWxlKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcAppbmRleCBkYzRlMTI4MDg5MDJmNTBkMWU5OWM4NjY4YjRjMTUyYzJkZGE5ZDczLi40
ZDI3ZjRmZDRiNTUyMjg3NDNkM2UyZjdjYzk3ZmJjNDNmNDRhOGViIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29kaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdU
ZXN0LCBRdWVyeUVuY29kaW5nKQogewogICAgIGNoZWNrVVJMKHV0ZjE2U3RyaW5nKHUiaHR0cDov
L2hvc3Q/w5/wn5iNI8Of8J+YjSIpLCBudWxscHRyLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCks
IGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgIiVDMyU5RiVGMCU5RiU5OCU4RCJf
cywgIiVDMyU5RiVGMCU5RiU5OCU4RCJfcywgdXRmMTZTdHJpbmcodSJodHRwOi8vaG9zdC8/JUMz
JTlGJUYwJTlGJTk4JThEIyVDMyU5RiVGMCU5RiU5OCU4RCIpfSwgdGVzdFRhYnNWYWx1ZUZvclN1
cnJvZ2F0ZVBhaXJzKTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGxhdGluMShTdHJpbmcoImxh
dGluMSIpKTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoImxhdGluMSIpOwogICAgIGNo
ZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkgd2l0aCUyMHNwYWNlcyJfcywgJmxhdGluMSwgeyJo
dHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3Ms
ICJxdWVyeSUyMHdpdGglMjBzcGFjZXMiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/
cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zfSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0Lz9x
dWVyeSJfcywgJmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygp
LCAiaG9zdCJfcywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9o
b3N0Lz9xdWVyeSJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/XHRxdWVyeSJfcywg
JmxhdGluMSwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJf
cywgMCwgIi8iX3MsICJxdWVyeSJfcywgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz9xdWVy
eSJfc30pOwpAQCAtMTUxLDcgKzE1MSw3IEBAIFRFU1RfRihVUkxQYXJzZXJUZXh0RW5jb2RpbmdU
ZXN0LCBRdWVyeUVuY29kaW5nKQogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVlcnkiX3Ms
ICZ1bnJlY29nbml6ZWQsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaHR0cDov
L2hvc3QvPyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/Il9zLCAmdW5yZWNvZ25p
emVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAw
LCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9ob3N0Lz8iX3N9
KTsKIAotICAgIFBBTDo6VGV4dEVuY29kaW5nIGlzbzg4NTkxKFN0cmluZygiSVNPLTg4NTktMSIp
KTsKKyAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MSgiSVNPLTg4NTktMSIpOwogICAgIFN0
cmluZyB3aXRoVW1sYXV0cyA9IHV0ZjE2U3RyaW5nPDQ+KHsweERDLCAweDQzMCwgMHg0NTEsICdc
MCd9KTsKICAgICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3czovL2hvc3QvcGF0aD8iLCB3aXRoVW1s
YXV0cyksICZpc284ODU5MSwgeyJ3cyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvcGF0aCJfcywgIiVDMyU5QyVEMCVCMCVEMSU5MSJfcywgZW1wdHlTdHJp
bmcoKSwgIndzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwogICAgIGNoZWNr
VVJMKG1ha2VTdHJpbmcoIndzczovL2hvc3QvcGF0aD8iLCB3aXRoVW1sYXV0cyksICZpc284ODU5
MSwgeyJ3c3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJob3N0Il9zLCAwLCAi
L3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5nKCksICJ3c3M6Ly9o
b3N0L3BhdGg/JUMzJTlDJUQwJUIwJUQxJTkxIl9zfSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCmluZGV4IDJkZDdlNGFl
N2EwMWMyOWVmMTRiZTg5ZmVkYWIyODVkOTc2Zjk4MDMuLjFhNWI1ZDZhZDhkZDE3NTg5Njg5OTQ0
YmRiYzk0NjM2ODM3ZTgxNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Vc2VyQWdlbnRRdWlya3MuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKIAogc3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFz
Q2hyb21lQnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJp
bmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoIFN0cmluZyB7IHVybCB9KSk7CisgICAg
U3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJv
bUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiQ2hy
b21lIikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJTYWZhcmkiKSk7CkBA
IC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0Nocm9t
ZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJB
Z2VudEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogewotICAg
IFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmcgeyB1
cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVS
TChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5n
LmNvbnRhaW5zKCJDaHJvbWUiKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVhU3RyaW5nLmNvbnRhaW5z
KCJTYWZhcmkiKSk7CkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2Vu
dEZvclVSTEhhc0ZpcmVmb3hCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMg
dm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIq
IHVybCkKIHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChV
UkwoU3RyaW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJB
Z2VudEZvclVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9U
UlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWNpbnRvc2giKSk7CiAgICAgRVhQRUNUX1RSVUUodWFT
dHJpbmcuY29udGFpbnMoIk1hYyBPUyBYIikpOwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgdm9p
ZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNNYWNQbGF0Zm9ybVF1aXJrKGNvbnN0IGNoYXIqIHVy
bCkKIC8vIHRoYXQgdGhlIHN0YW5kYXJkIHVzZXIgYWdlbnQgc2hvdWxkIGJlIHVzZWQuKQogc3Rh
dGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzRW1wdHlRdWlyayhjb25zdCBjaGFyKiB1
cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJM
KFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdl
bnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KHVhU3RyaW5nLmlzTnVsbCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQppbmRl
eCA3NTMyODE4NGM0Y2U0ZjE4ZWIwNWY2MWQzNTY5MDMzYzBkNjlkMjcwLi43ZmM3ZWY0MTk0YjA2
NTFlNzJhZmEwYTRlZDIxNjkxZTg1NGZkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvRGF0YWJhc2VUcmFja2VyVGVzdC5t
bQpAQCAtOTksNyArOTksNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlT3JpZ2luKQog
ICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGUgb3JpZ2luJ3MgaW5mb3Jt
YXRpb24gZnJvbSBib3RoIHRoZSBPcmlnaW5zCiAgICAgLy8gYW5kIERhdGFiYXNlcyB0YWJsZXMs
IGFuZCByZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FM
RGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FM
Iik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRG
OFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rv
cnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFj
a2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURp
cmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAi
d2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKERhdGFiYXNlVHJh
Y2tlciwgRGVsZXRlT3JpZ2luV2hlbkRhdGFiYXNlRG9lc05vdEV4aXN0KQogICAgIC8vIGJ1dCBu
b3QgYW4gYWN0dWFsIGRhdGFiYXNlIG9uIGRpc2suCiAgICAgLy8gVGhlIGluZm9ybWF0aW9uIHNo
b3VsZCBzdGlsbCBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlcy4KICAgICBOU1N0cmluZyAqd2Vi
U1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2Vi
U1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3Rvcnku
VVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJl
Y3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VU
cmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9z
LCAid2Via2l0Lm9yZyJfcywgNDQzKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBURVNUKERhdGFiYXNl
VHJhY2tlciwgRGVsZXRlT3JpZ2luV2hlbkRlbGV0aW5nQURhdGFiYXNlRmFpbHMpCiAgICAgLy8g
SW4gdGhpcyBjYXNlLCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGVp
dGhlciB0aGUgRGF0YWJhc2VzIG9yCiAgICAgLy8gT3JpZ2lucyB0YWJsZXMuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0yMzQsNyArMjM0LDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldpdGhNaXNzaW5nRW50cnlJbkRhdGFiYXNlc1Rh
YmxlKQogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9t
IHRoZSBPcmlnaW5zIHRhYmxlLCBhbmQgdGhlCiAgICAgLy8gZGF0YWJhc2Ugc2hvdWxkIGJlIGRl
bGV0ZWQgZnJvbSBkaXNrLgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMp
OwpAQCAtMjcyLDcgKzI3Miw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFz
ZSkKICAgICAvLyBhbmQgYSBkYXRhYmFzZSBvbiBkaXNrLiBBZnRlciB0aGUgZGVsZXRpb24sIHRo
ZSBkYXRhYmFzZSBzaG91bGQgYmUgZGVsZXRlZAogICAgIC8vIGZyb20gZGlzaywgYW5kIHRoZSBp
bmZvcm1hdGlvbiBzaG91bGQgYmUgZ29uZSBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAgICAg
TlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURp
cmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBh
dGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNr
ZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFz
ZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3Jp
Z2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0zMTQsNyArMzE0LDcgQEAg
VEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZURhdGFiYXNlV2hlbkRhdGFiYXNlRG9lc05vdEV4
aXN0KQogICAgIC8vIFRlc3QgdGhlIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIGRlbGV0ZSBhIGRhdGFi
YXNlIHRoYXQgZG9lc24ndCBleGlzdCBvbiBkaXNrLgogICAgIC8vIFdlIHNob3VsZCBzdGlsbCBy
ZW1vdmUgdGhlIGRhdGFiYXNlIGluZm9ybWF0aW9uIGZyb20gdGhlIERhdGFiYXNlcyB0YWJsZS4K
ICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9y
YXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
VHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERh
dGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggMTFiOWQ2
ODY1NDNmZjMwYTFiNmVkNDBiN2ExNTAwMjQ0MmRjMTAyZi4uZWE3NGEzMDZiNzg2MDUzZjJhYzAz
YjVhZDA3MWU0NmFlYmQ5MTAyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTE0MSw3ICsxNDEsNyBAQCBSZXRhaW5QdHI8
U2VjSWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKQogICAgICJtaUsxVFh0TGxXTjA2cjQzYW5R
cVp5UmJ1NUlvSG1IQXlicGs0U3RxMjl3T1NCb1pkeWFyUVdrbG95aVlKS2RYIgogICAgICJvRGRr
S0Y4Y3dvQmVBZWlSTGtUNDVzdFJOa2xCZzRWbGdDRkVMUE9jV1lNRk9vU2tRZzE5VlMvVmFIaTQ4
dCt6IgogICAgICI2NjhCbjFVM1U5ZC9pTkNYRk03OGlLcW9KQ0JvVVJ5aXJtRy90STZnZkppTG4w
NVR6Nm5ZejMxWTQwRm0xU3dnIgotICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5
eiIpOworICAgICJoZ095L1RkSk8vTmptVEhCZ3BJVFA2bHY2OVF2YVY5eiJfcyk7CiAKICAgICBT
dHJpbmcgcGVtRW5jb2RlZENlcnRpZmljYXRlKCIiCiAgICAgIk1JSUZnRENDQTJnQ0NRRCtRWTFK
Um5NM0lqQU5CZ2txaGtpRzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCkBAIC0xNzMsNyAr
MTczLDcgQEAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAi
NDZpemhvdTNHU0t6M1gxZVlwWWJaSEY1MmR4bU9VZHZwU29xZm1sTUYxRWd2OTRjckQxeGg5YXNk
amcyRG5YYyIKICAgICAiOTQ4WXhQYUZqb09HZDZZbmMrZnY5cEp6alRqeGltYklpV20ycjZ5dDJq
OWhBdUtKWHBOT0lhNG9JTUFJR2pDaSIKICAgICAiSkFIMm54S0d1cXRBSzJoV2JBQ3U2MVJUNWdB
cUF2L2hCOUpZbmMyT2lRMlZtallrT2syR0VkSWpuMHhTZ1g3VyIKLSAgICAibUkvaEhieEtNRzNS
a3Y5cTFDeCtXQi92MXQ4PSIpOworICAgICJtSS9oSGJ4S01HM1JrdjlxMUN4K1dCL3YxdDg9Il9z
KTsKIAogICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVuY29kZWRQ
cml2YXRlS2V5KTsKICAgICBhdXRvIGNlcnRpZmljYXRlQnl0ZXMgPSBiYXNlNjREZWNvZGUocGVt
RW5jb2RlZENlcnRpZmljYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCA2YzNjYTNkNTI0ODBj
OTQ4MTc4N2NiM2IxMGVmOTljYWEzZTg1MzhjLi42YWY0ZTg4YTgwMmU5YTUzNGI2ODhmNTNhZTY4
MGQ2YzE1Yzg1ZTQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0yODIsNyArMjgyLDcgQEAgc3Rh
dGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25p
bmdQYXJ0eSBzaWduaW5nUGFydHkKICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVF
KHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3Qy
LnNpemUoKSkpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QyU3RyaW5n
ID0gU3RyaW5nKHJlcXVlc3QyLmRhdGEoKSwgcmVxdWVzdDIuc2l6ZSgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5
OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIikgOiBTdHJpbmcoImRl
c3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJp
bmcoInNvdXJjZV91bmxpbmthYmxlX3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fdW5s
aW5rYWJsZV90b2tlbiJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0g
cmVxdWVzdDJTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQg
Kz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0g
cmVxdWVzdDJTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0
aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmlu
Z1BhcnR5IHNpZ25pbmdQYXJ0eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byByZXF1ZXN0NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVl
c3Q0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3Ry
aW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90
b2tlbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5
ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNv
dXJjZV9zZWNyZXRfdG9rZW4iX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4i
X3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc3RhcnQg
PSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoJyIn
LCBzdGFydCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVU
b2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tlblNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRva2VuVmVjdG9yID0g
YmFzZTY0VVJMRGVjb2RlKHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIHRva2VuRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRo
Qnl0ZXM6dG9rZW5WZWN0b3ItPmRhdGEoKSBsZW5ndGg6dG9rZW5WZWN0b3ItPnNpemUoKV0pOwog
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gc2lnbmluZ1Bh
cnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmcoInNvdXJjZV9zZWNyZXRf
dG9rZW5fc2lnbmF0dXJlIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbl9zaWdu
YXR1cmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSBz
aWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/IFN0cmluZygic291cmNl
X3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3MpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRf
dG9rZW5fc2lnbmF0dXJlIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkgKyAzOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHJlcXVlc3Q0U3RyaW5nLmZp
bmQoJyInLCBzdGFydCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA1YmNl
YTgxMDkzY2ZlZTVmODgyZmY2OTZmNTg2ZjkyNjk4NzhiZDEzLi5kYmU4MDA4ODdjOWJjNDY0ZTNl
NWU5NTQ1NDQ5YTkzOTI3ZmM0YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
QEAgLTczODksMjMgKzczODksMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0
ZXJOYXZpZ2F0aW5nQXdheUZyb21DT09QKQogCiBlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJv
b2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7
IE5vLCBZZXMgfTsKLXN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hh
ciogc291cmNlQ09PUCwgY29uc3QgY2hhciogc291cmNlQ09FUCwgY29uc3QgY2hhciogZGVzdGlu
YXRpb25DT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlvbkNPRVAsIElzU2FtZU9yaWdpbiBpc1Nh
bWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVyU2lkZVJlZGlyZWN0LCBFeHBl
Y3RTd2FwIGV4cGVjdFN3YXApCitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KEFT
Q0lJTGl0ZXJhbCBzb3VyY2VDT09QLCBBU0NJSUxpdGVyYWwgc291cmNlQ09FUCwgQVNDSUlMaXRl
cmFsIGRlc3RpbmF0aW9uQ09PUCwgQVNDSUlMaXRlcmFsIGRlc3RpbmF0aW9uQ09FUCwgSXNTYW1l
T3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVk
aXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHNvdXJjZUhlYWRlcnM7
CiAgICAgc291cmNlSGVhZGVycy5hZGQoIkNvbnRlbnQtVHlwZSJfcywgInRleHQvaHRtbCJfcyk7
CiAgICAgaWYgKHNvdXJjZUNPT1ApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKHNvdXJjZUNPT1ApKTsKKyAgICAgICAgc291
cmNlSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBzb3VyY2VDT09Q
KTsKICAgICBpZiAoc291cmNlQ09FUCkKLSAgICAgICAgc291cmNlSGVhZGVycy5hZGQoIkNyb3Nz
LU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT0VQKSk7CisgICAgICAg
IHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBzb3Vy
Y2VDT0VQKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGRlc3RpbmF0aW9uSGVhZGVy
czsKICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0
bWwiX3MpOwogICAgIGlmIChkZXN0aW5hdGlvbkNPT1ApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVh
ZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRp
b25DT09QKSk7CisgICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5Il9zLCBkZXN0aW5hdGlvbkNPT1ApOwogICAgIGlmIChkZXN0aW5hdGlvbkNP
RVApCi0gICAgICAgIGRlc3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRl
ci1Qb2xpY3kiX3MsIFN0cmluZyhkZXN0aW5hdGlvbkNPRVApKTsKKyAgICAgICAgZGVzdGluYXRp
b25IZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJfcywgZGVzdGluYXRp
b25DT0VQKTsKICAgICBIVFRQUmVzcG9uc2UgZGVzdGluYXRpb25SZXNwb25zZShXVEZNb3ZlKGRl
c3RpbmF0aW9uSGVhZGVycyksICJwb3B1cCJfcyk7CiAKICAgICBIVFRQU2VydmVyIHNlcnZlcihz
dGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4geyB9
LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOwpAQCAtNzQyNyw4ICs3NDI3LDggQEAgc3Rh
dGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBj
b25zdCBjaGFyKiBzb3VyY2VDT0UKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
ID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wg
PSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBib29sIHNvdXJjZVNob3VsZEJl
Q3Jvc3NPcmlnaW5Jc29sYXRlZCA9IHNvdXJjZUNPT1AgJiYgIXN0cmNtcChzb3VyY2VDT09QLCAi
c2FtZS1vcmlnaW4iKSAmJiBzb3VyY2VDT0VQICYmICFzdHJjbXAoc291cmNlQ09FUCwgInJlcXVp
cmUtY29ycCIpOwotICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0
ZWQgPSBkZXN0aW5hdGlvbkNPT1AgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNPT1AsICJzYW1lLW9y
aWdpbiIpICYmIGRlc3RpbmF0aW9uQ09FUCAmJiAhc3RyY21wKGRlc3RpbmF0aW9uQ09FUCwgInJl
cXVpcmUtY29ycCIpOworICAgIGJvb2wgc291cmNlU2hvdWxkQmVDcm9zc09yaWdpbklzb2xhdGVk
ID0gc291cmNlQ09PUCA9PSAic2FtZS1vcmlnaW4iX3MgJiYgc291cmNlQ09FUCA9PSAicmVxdWly
ZS1jb3JwIl9zOworICAgIGJvb2wgZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0
ZWQgPSBkZXN0aW5hdGlvbkNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIGRlc3RpbmF0aW9uQ09F
UCA9PSAicmVxdWlyZS1jb3JwIl9zOwogICAgIEVYUEVDVF9UUlVFKHNvdXJjZVNob3VsZEJlQ3Jv
c3NPcmlnaW5Jc29sYXRlZCA9PSBkZXN0aW5hdGlvblNob3VsZEJlQ3Jvc3NPcmlnaW5Jc29sYXRl
ZCB8fCBleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Olllcyk7CiAKICAgICBhdXRvIHdlYlZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKQEAgLTc1ODIsMjExICs3NTgyLDIxMSBAQCBzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
CiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVsbHB0
ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjQpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCAi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIs
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2lu
Il9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInVuc2FmZS1ub25lIl9zLCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdp
bjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCB7IH0sIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewot
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsgfSwgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0KQogewotICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2Fm
ZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9u
ZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbkFsbG93UG9wdXApCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAicmVx
dWlyZS1jb3JwIiwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCAicmVxdWlyZS1jb3JwIl9zLCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNh
bWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZl
LW5vbmUiX3MsICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9y
aWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
ICJyZXF1aXJlLWNvcnAiX3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5k
Q09FUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewogICAgIC8vIFNob3VsZCBzd2FwIGJl
Y2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9z
LCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NP
T1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQgc3dhcCBiZWNhdXNlIHRoZSBz
b3VyY2UgaXMgbWlzc2luZyBDT0VQLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRo
UmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVj
dCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmln
aW5XaXRoUmVkaXJlY3QpCiB7CiAgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSBy
ZWRpcmVjdCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbiBhbmQgQ09FUD1yZXF1aXJlLWNv
cnAuCi0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1j
b3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1v
cmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQogewotICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6
Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KHsgfSwgeyB9LCB7IH0sIHsgfSwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5v
KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIs
ICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhw
ZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJf
cywgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2lu
OjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luNCkK
IHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4i
X3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNv
cnAiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCB7IH0s
IHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4yKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywg
eyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywg
InVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luNCkKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1
bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UEFuZENPRVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9
LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAi
c2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVP
cmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgInNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNh
bWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5Ub0NPT1BT
YW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwg
InJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUt
b3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5BbGxvd1BvcHVwKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsICJ1bnNhZmUtbm9u
ZSIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
LWFsbG93LXBvcHVwIl9zLCB7IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVu
c2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXA0
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNh
ZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdp
bjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBz
dGF0aWMgYm9vbCBpc0pJVEVuYWJsZWQoV0tXZWJWaWV3ICp3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQppbmRleCBjODE3MjE4NGEwYTFkNzU2YzRlOGExN2FiMTRiYmEzZTY2MDIxNzIwLi5m
NDcwZTZlY2E2Yzg0YzcwMDY5ZTZhNTU5MGJjNzAxYWU5YmMwMDBhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQpAQCAtMjEzNSw5ICsyMTM1LDkgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ29udGVu
dFJ1bGVMaXN0KQogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwogICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKFtdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVj
dGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9o
dG1sIiB9fSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0bWwi
X3MgfSB9LCBtYWluQnl0ZXMpLnNlcmlhbGl6ZSgpLCBbPV0gewogICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHt7ICJDb250ZW50LVR5
cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNj
cmlwdCkuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24u
c2VuZChIVFRQUmVzcG9uc2UoeyB7ICJDb250ZW50LVR5cGUiX3MsICJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0Il9zIH0gfSwgY29udGVudFJ1bGVMaXN0V29ya2VyU2NyaXB0KS5zZXJpYWxpemUoKSwg
Wz1dIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJiBsYXN0UmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIoKGNvbnN0IGNoYXIqKWxhc3RSZXF1ZXN0LmRh
dGEoKSwgImFsbG93ZWRzdWJyZXNvdXJjZSIsIGxhc3RSZXF1ZXN0LnNpemUoKSkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoInN1Y2Nl
c3NmdWwgZmV0Y2giX3MpLnNlcmlhbGl6ZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbQppbmRleCBmZGQ2NzA4NjgzZWJjYmVmMjJlMDg1NjdmNzZiZTU5NmUxODBkZDM5Li5l
ZWUzZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0yODMsOCArMjgzLDggQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CiAKLWNvbnN0IGNoYXIgcGFyZW50RnJhbWVbXSA9ICI8
aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9o
dG1sPiI7Ci1jb25zdCBjaGFyIHN1YkZyYW1lW10gPQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHBh
cmVudEZyYW1lID0gIjxodG1sPjxpZnJhbWUgaWQ9J3RoZUZyYW1lJyBzcmM9J2lGcmFtZS5odG1s
Jz48L2lmcmFtZT48L2h0bWw+Il9zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIHN1YkZyYW1lID0K
ICI8aHRtbD4iCiAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dCc+IgogIjxzY3JpcHQ+IgpA
QCAtMjk5LDcgKzI5OSw3IEBAIGNvbnN0IGNoYXIgc3ViRnJhbWVbXSA9CiAiICAgIH07IgogIiAg
ICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpOyIKICI8L3NjcmlwdD4iCi0iPC9o
dG1sPiI7CisiPC9odG1sPiJfczsKIAogc3RhdGljIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpCiB7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMDU0MDU1
MzdhNzU3NDhkMGZlZmY4ZGY1OGQ0NjUwNmIwNmQyMTVhZS4uZDAyMGQ2ZThlYzg3YTczNTcwNGFm
NWY1YmYyYmE4MjRmZGZiOGQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0U1NMLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjZXJ0aWZp
Y2F0ZSkpOwogICAgICAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAgICAgICAgIG1f
dGxzRXJyb3JzID0gdGxzRXJyb3JzOwotICAgICAgICBtX2ZhaWxpbmdVUkwgPSBVUkwoU3RyaW5n
IHsgZmFpbGluZ1VSSSB9KTsKKyAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJMKFN0cmluZzo6ZnJv
bUxhdGluMShmYWlsaW5nVVJJKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVu
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50
LmNwcAppbmRleCBiN2MxY2MxYzVjNTNiOTcwNmVkZDRiYzRmNzcyY2EyOTYzZDEzNDJmLi5kODU1
MDhhNWQzMmU2YTc3MDVjMzBlN2VlZTk4NmE4ODFlMTQwNGRlIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtMTMx
LDcgKzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHdpbmRvd1Byb3BlcnRpZXNO
b3RpZnlDYWxsYmFjayhHT2JqZWN0KiwgR1BhcmFtU3BlYyogcGFyYW1TcGVjLCBVSUNsaWVudFRl
c3QqIHRlc3QpCiAgICAgewotICAgICAgICB0ZXN0LT5tX3dpbmRvd1Byb3BlcnRpZXNDaGFuZ2Vk
LmFkZChTdHJpbmcgeyBnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSB9KTsKKyAgICAg
ICAgdGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVzQ2hhbmdlZC5hZGQoU3RyaW5nOjpmcm9tTGF0aW4x
KGdfcGFyYW1fc3BlY19nZXRfbmFtZShwYXJhbVNwZWMpKSk7CiAgICAgfQogCiAgICAgc3RhdGlj
IFdlYktpdFdlYlZpZXcqIHZpZXdDcmVhdGVDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uLCBVSUNsaWVudFRlc3QqIHRlc3Qp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdl
YkV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJFeHRlbnNpb25zLmNwcAppbmRleCBjNTY5MDJhMjI5NzA3MjJkM2NjMTE2YmJhMzEwZGRi
NmI0M2RlODliLi43ZGVkNjZjZTY2ZGM1YTRhYTMzMjM3MTA5MGEwYTQ5MGU5OGUzNzU4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVu
c2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
V2ViRXh0ZW5zaW9ucy5jcHAKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Vi
RXh0ZW5zaW9uUGFnZUlEKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIC8v
IFJlZ2lzdGVyIGEgY3VzdG9tIFVSSSBzY2hlbWUgdG8gdGVzdCBoaXN0b3J5IG5hdmlnYXRpb24u
CiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUodGVzdC0+bV93ZWJD
b250ZXh0LmdldCgpLCAiZm9vIiwKICAgICAgICAgW10oV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCog
cmVxdWVzdCwgZ3BvaW50ZXIpIHsKLSAgICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nIHsg
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAgICAgICAg
ICAgVVJMIHVybCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVx
dWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVh
bT4gaW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX25ldygpKTsK
ICAgICAgICAgICAgIGNoYXIqIGh0bWwgPSBnX3N0cmR1cF9wcmludGYoIjxodG1sPjxoZWFkPjx0
aXRsZT4lczwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgdXJsLmhvc3QoKSA9
PSAiaG9zdDUiID8gIlRpdGxlNSIgOiAiVGl0bGU2Iik7CiAgICAgICAgICAgICBnX21lbW9yeV9p
bnB1dF9zdHJlYW1fYWRkX2RhdGEoR19NRU1PUllfSU5QVVRfU1RSRUFNKGlucHV0U3RyZWFtLmdl
dCgpKSwgaHRtbCwgc3RybGVuKGh0bWwpLCBnX2ZyZWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKaW5kZXggYTQzYzkzZWE5ODRjM2E2ZmI1ZmI0MDlhMjA3YmM3Zjg2NTczY2Q3ZC4uMzEyMDc4
ZjdjYTRhYTkwNzlkYjQ2ODMwOTQ4MDVlYWJlZjkyMzhmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRl
eHQuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogCiBTdHJpbmcgZ2VuZXJhdGVIVE1M
Q29udGVudCh1bnNpZ25lZCBjb250ZW50TGVuZ3RoKQogewotICAgIFN0cmluZyBiYXNlU3RyaW5n
KCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTc4OTAiKTsKKyAgICBTdHJpbmcgYmFz
ZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIl9zKTsKICAgICB1
bnNpZ25lZCBiYXNlTGVuZ3RoID0gYmFzZVN0cmluZy5sZW5ndGgoKTsKIAogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQppbmRleCBhODRkYTVlYTJmMGVhMzZlMTk3ZGI5MzBi
MDRjNDcyMzc4NTQ3Zjk5Li45MDkyZGUwMDQyMzdjZTg4NjQyNWViN2EwMDI3MjgyNzg2YzlkNDY3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNh
bkNvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1l
bnVDYW5Db3B5VVJMLm1tCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENv
bnRleHRNZW51Q2FuQ29weVVSTCkKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZpZXcuZ2V0
KCksIDApOwogICAgIAogICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgVVJMRnJvbVBhc3RlYm9hcmQ6
W05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF1dOwotICAgIEVYUEVDVF9FUShTdHJpbmco
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKFt1cmwgYWJzb2x1dGVTdHJpbmddKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyJfcyksIFN0cmlu
ZyhbdXJsIGFic29sdXRlU3RyaW5nXSkpOwogCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJW
aWV3LmdldCgpLCAxKTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbQppbmRleCBjMTdhNjI4NTcxZDI4OTE1ZmUyYjllZjUx
MTg3MjA2MzViMGI4M2EzLi5hNWY3YmJmNTdiOWIwNzUyZWE0MzY3NDA2ODY0ZTNiNDAwMDE5N2Jm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0NhblBh
c3RlVVJMLm1tCkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2Fu
UGFzdGVVUkwpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5j
aG9yRWxlbWVudCAqKVtkb2N1bWVudEVsZW1lbnQgcXVlcnlTZWxlY3RvcjpAImEiXTsKICAgICBO
U1N0cmluZyAqdGV4dCA9IFthbmNob3IgaHJlZl07CiAgICAgCi0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpLCBTdHJpbmcodGV4dCkpOworICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpLCBTdHJpbmcodGV4dCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RU
b1VSTENyYXNoLm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5
YWEuLmM0M2FlY2QxODllNzY0MThhZGJhYTZjMWFhNTRlYTRhOWNlYTFjMWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RU
b1VSTENyYXNoLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
OihOU1VSTCAqKVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5K
YXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlh
dGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBB
U1MiKSwgU3RyaW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJQQVNTIl9zKSwg
U3RyaW5nKG1lc3NhZ2UpKTsKICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KaW5kZXggMjk0OTAyNWY3MDliZjQxM2I0YWY0
YjY5ZjczMzBlZGY1YzEyYWU2Yi4uMGYyYTdjN2QzOGIzNmVkN2E1MjcxOWYwNjMwNTE0YzEzZDJk
NzU0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtNDY3LDkg
KzQ2Nyw5IEBAIHZvaWQgQ29ubmVjdGlvbjo6d2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb25uZWN0aW9uSGFuZGxlCiAgICAgICAgIH07CiAKICAgICAgICAg
Y29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSgxMDEsIHsKLSAgICAgICAgICAgIHsgIlVwZ3Jh
ZGUiLCAid2Vic29ja2V0IiB9LAotICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiIsICJVcGdyYWRl
IiB9LAotICAgICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiLCB3ZWJTb2NrZXRBY2Nl
cHRWYWx1ZShyZXF1ZXN0KSB9CisgICAgICAgICAgICB7ICJVcGdyYWRlIl9zLCAid2Vic29ja2V0
Il9zIH0sCisgICAgICAgICAgICB7ICJDb25uZWN0aW9uIl9zLCAiVXBncmFkZSJfcyB9LAorICAg
ICAgICAgICAgeyAiU2VjLVdlYlNvY2tldC1BY2NlcHQiX3MsIHdlYlNvY2tldEFjY2VwdFZhbHVl
KHJlcXVlc3QpIH0KICAgICAgICAgfSkuc2VyaWFsaXplKEhUVFBSZXNwb25zZTo6SW5jbHVkZUNv
bnRlbnRMZW5ndGg6Ok5vKSwgV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpOwogICAgIH0pOwog
fQpAQCAtNjMzLDcgKzYzMyw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0Q2Vy
dGlmaWNhdGUoKQogICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpw
NTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgogICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZ
TzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgogICAgICJHM1BGblliVzh1
ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1Igot
ICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Iik7CisgICAgIjN2alpEM3k5a1prN21y
ZTlYSHdrSThNZEs1cz0iX3MpOwogICAgIAogICAgIGF1dG8gZGVjb2RlZENlcnRpZmljYXRlID0g
YmFzZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CiAgICAgcmV0dXJuIFdURk1vdmUo
KmRlY29kZWRDZXJ0aWZpY2F0ZSk7CkBAIC02OTEsNyArNjkxLDcgQEAgVmVjdG9yPHVpbnQ4X3Q+
IEhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKICAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBi
SHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKICAgICAidnVlUGNU
anI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgy
dSIKICAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0r
Nkh3dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0i
KTsKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iX3MpOwogCiAgICAgYXV0
byBkZWNvZGVkUHJpdmF0ZUtleSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSk7
CiAgICAgcmV0dXJuIFdURk1vdmUoKmRlY29kZWRQcml2YXRlS2V5KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAK
aW5kZXggMjgwMzQxMTQwZjAyZjg0Zjc5NDk0ZWVjNGI3ZTM2YjExYzA5OWQ4My4uOGRmYTRlMjNm
NGU0OTAyNTJiMzlhNGI2NjdmYWI5MzIyNWNkYWNmMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdFNlcnZlci5jcHAKQEAgLTEw
MSwxMiArMTAxLDEyIEBAIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0V2ViU29ja2V0VVJJ
Rm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewogICAgIGdfYXNzZXJ0X2ZhbHNlKG1f
YmFzZVdlYlNvY2tldFVSTC5pc051bGwoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShwYXRoICYmICpw
YXRoID09ICcvJyk7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VXZWJTb2NrZXRVUkwsIFN0cmluZyB7
IHBhdGggKyAxIH0pLnN0cmluZygpLnV0ZjgoKTsgLy8gSWdub3JlIHRoZSBsZWFkaW5nIHNsYXNo
LgorICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmc6OmZyb21MYXRpbjEo
cGF0aCArIDEpKS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4K
IH0KIAogQ1N0cmluZyBXZWJLaXRUZXN0U2VydmVyOjpnZXRVUklGb3JQYXRoKGNvbnN0IGNoYXIq
IHBhdGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFVSTChtX2Jhc2VVUkwsIFN0cmluZyB7IHBhdGgg
fSkuc3RyaW5nKCkudXRmOCgpOworICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmc6OmZy
b21MYXRpbjEocGF0aCkpLnN0cmluZygpLnV0ZjgoKTsKIH0KIAogdW5zaWduZWQgV2ViS2l0VGVz
dFNlcnZlcjo6cG9ydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAppbmRleCAyYTg4NTI3MTRhZWZmMWEyMTlkMTdk
YTUyZjhlNTdlN2ViNjVlOTE4Li40MmZjMGI0ZjEzYzE0YWY0NjQ5YzY2ODUxMjNmMzYxMDEwZTJm
ZWUzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRy
b2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29u
dHJvbGxlckd0ay5jcHAKQEAgLTE4NSwxMSArMTg1LDExIEBAIHN0YXRpYyBSZWY8SlNPTjo6T2Jq
ZWN0PiB0b0pTT05PYmplY3QoR1ZhcmlhbnQqIHZhcmlhbnQpCiAgICAgd2hpbGUgKGdfdmFyaWFu
dF9pdGVyX2xvb3AoJml0ZXIsICJ7JnN2fSIsICZrZXksICZ2YWx1ZSkpIHsKICAgICAgICAgY29u
c3QgR1ZhcmlhbnRUeXBlKiB0eXBlID0gZ192YXJpYW50X2dldF90eXBlKHZhbHVlKTsKICAgICAg
ICAgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVf
VkFSRElDVCkpCi0gICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRPYmplY3QoU3RyaW5nIHsga2V5
IH0sIHRvSlNPTk9iamVjdCh2YWx1ZSkpOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2Jq
ZWN0KFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCB0b0pTT05PYmplY3QodmFsdWUpKTsKICAgICAg
ICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBlLCBHX1ZBUklBTlRf
VFlQRV9TVFJJTkcpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZyB7
IGtleSB9LCBTdHJpbmcgeyBnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0cikgfSk7
CisgICAgICAgICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoU3RyaW5nOjpmcm9tTGF0aW4xKGtl
eSksIFN0cmluZzo6ZnJvbUxhdGluMShnX3ZhcmlhbnRfZ2V0X3N0cmluZyh2YWx1ZSwgbnVsbHB0
cikpKTsKICAgICAgICAgZWxzZSBpZiAodHlwZSAmJiBnX3ZhcmlhbnRfdHlwZV9lcXVhbCh0eXBl
LCBHX1ZBUklBTlRfVFlQRV9ET1VCTEUpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0RG91
YmxlKFN0cmluZyB7IGtleSB9LCBnX3ZhcmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOworICAgICAg
ICAgICAganNvbk9iamVjdC0+c2V0RG91YmxlKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBnX3Zh
cmlhbnRfZ2V0X2RvdWJsZSh2YWx1ZSkpOwogICAgIH0KICAgICByZXR1cm4ganNvbk9iamVjdDsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcCBiL1Rv
b2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcAppbmRleCBjZjEzMWFlYmEwYWUzODY4
OTM3ODM4NjBlZGZjODQxNTI0ZTE3ODhjLi5jM2YwZDM5NzIyMzdlYmQzNjM1ODE2MzJjOGNjZTQ4
M2ZlYTVjMmJkIDEwMDY0NAotLS0gYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5j
cHAKKysrIGIvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCkBAIC01NywxMyAr
NTcsMTMgQEAgZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgewogCiBzdGF0aWMgdm9pZCB0ZXN0U3Vt
bWFyeVByb3ZpZGVycygpCiB7Ci0gICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgIiIgfTsKKyAgICBT
dHJpbmcgYU51bGxTdHJpbmcgeyB9OwogICAgIFN0cmluZ0ltcGwqIGFOdWxsU3RyaW5nSW1wbCA9
IGFOdWxsU3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbkVtcHR5U3RyaW5nIHsgIiIgfTsK
KyAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiX3MgfTsKICAgICBTdHJpbmdJbXBsKiBhbkVt
cHR5U3RyaW5nSW1wbCA9IGFuRW1wdHlTdHJpbmcuaW1wbCgpOwogCi0gICAgU3RyaW5nIGFuOEJp
dFN0cmluZyB7ICJyw6lzdW3DqSIgfTsKKyAgICBhdXRvIGFuOEJpdFN0cmluZyA9IFN0cmluZzo6
ZnJvbUxhdGluMSgicsOpc3Vtw6kiKTsKICAgICBTdHJpbmdJbXBsKiBhbjhCaXRTdHJpbmdJbXBs
ID0gYW44Qml0U3RyaW5nLmltcGwoKTsKIAogICAgIFN0cmluZyBhMTZCaXRTdHJpbmcgPSB1dGYx
NlN0cmluZyh1Ilx1MTY4MENhcHB1Y2Npbm9cdTE2ODAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457209</attachid>
            <date>2022-04-10 13:01:23 -0700</date>
            <delta_ts>2022-04-10 16:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220410130122.patch</filename>
            <type>text/plain</type>
            <size>225592</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLmIyN2FhM2RlYTczNDVlZjZiN2QyMGViYzk5Y2ExNmQ3MTQ3MTNm
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1dU
RlN0cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4
LmNwcDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2Fz
dDw+KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uYmE5ODQ5
ZGNmMTFkN2I4MmU1YmE4ODE3M2UzNjgzYTk5ZWI1MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFu
ZCBtYWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVu
ZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpmaWxsUlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5k
UlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2Rp
bmdQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25T
eXN0ZW1FdmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdM
Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6
RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5z
aW9uc0dMT3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1p
emUgdGhlIHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXgg
ZjI3OGMxNTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uZWU2YWJmNWVhNmQzM2Ey
NjNkYjhhYjY3NGZjMzQwMzkxN2I4ZWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEZpbmlzaCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFr
ZSBTdHJpbmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6
OlNlc3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRy
aXZlclNlcnZpY2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpy
dW4pOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNl
Ojpwcm9jZXNzQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OmNvbm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1
c2VBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAg
ICAgIChXZWJEcml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpw
cm9jZXNzUG9pbnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlckFjdGlvbik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6Cisg
ICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZl
cjo6V2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJE
cml2ZXJTZXJ2aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJT
ZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUv
V2ViRHJpdmVyU2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNl
cnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBi
ZTE2Y2EwODdmZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5
ODczYTYxMTNlM2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAg
ICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVy
LCBjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNl
Q29ubmVjdGlvbihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAg
ICAgICAgLCBhZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAg
ICAgICwgcG9ydCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0K
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0
OTI1ZGQ4NGE0YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVu
Z3RoPiBpbmxpbmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IGMKIAogLyogQ29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzdd
ID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwotY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OworY29uc3QgQVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9z
LCAiV2VkIl9zLCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBB
U0NJSUxpdGVyYWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywg
IkFwciJfcywgIk1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9j
dCJfcywgIk5vdiJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5h
bWVbMTJdID0geyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJf
cywgIk1heSJfcywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9z
LCAiT2N0b2JlciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9m
IHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBK
YW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHll
YXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1
ZTRjYTk2NzkzNTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2Yw
MjFiZWQyNTEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUg
anNDdXJyZW50VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJ
VkFURSBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxO
YW1lWzEyXTsKIGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZN
b250aFsyXVsxMl07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQu
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCmluZGV4IDQzYzRkYjcyMzgwNjg1YjMwYzBh
MzY5ZmZlZjhjZjcyY2E3NTYxNTQuLjVmMGY2MjNiYzg5ZTkwZTc4ZmRhNzgxYzI3NjcxNDc2YThi
ZTcxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaApAQCAtNjcsMTEgKzY3LDE5IEBA
IHByaXZhdGU6CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oQVNDSUlMaXRlcmFsIGEsIGNvbnN0
IGNoYXIqIGIpCiB7Ci0gICAgcmV0dXJuIGIgJiYgIXN0cmNtcChhLmNoYXJhY3RlcnMoKSwgYik7
CisgICAgaWYgKCFhKQorICAgICAgICByZXR1cm4gIWI7CisgICAgaWYgKCFiKQorICAgICAgICBy
ZXR1cm4gIWE7CisgICAgcmV0dXJuICFzdHJjbXAoYS5jaGFyYWN0ZXJzKCksIGIpOwogfQogCiBp
bmxpbmUgYm9vbCBvcGVyYXRvcj09KEFTQ0lJTGl0ZXJhbCBhLCBBU0NJSUxpdGVyYWwgYikKIHsK
KyAgICBpZiAoIWEpCisgICAgICAgIHJldHVybiAhYjsKKyAgICBpZiAoIWIpCisgICAgICAgIHJl
dHVybiAhYTsKICAgICByZXR1cm4gIXN0cmNtcChhLmNoYXJhY3RlcnMoKSwgYi5jaGFyYWN0ZXJz
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAwMDNlZmI3YzEyMDQ1NTFlYWUy
Nzc2OTdkOTdjYmUyNTAyNjZlMDUwLi5iNjQ5NzA5ODBhYmUzZjNjNzliOTQyZmEwODI2NTY2M2Nl
ODI5YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTc2LDE0ICs3Niw5IEBAIHB1Ymxp
YzoKICAgICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBVVEYtMTYgZGF0YSwgZnJvbSBhIG51
bGwtdGVybWluYXRlZCBzb3VyY2UuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25z
dCBVQ2hhciopOwogCi0gICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggbGF0aW4xIGRhdGEu
CisgICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHdpdGggTGF0aW4tMSBkYXRhLgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgpOwotCi0gICAgLy8gVGhpcyBpcyBkZXByZWNhdGVkIGluIGZh
dm9yIG9mIGZyb21MYXRpbjEoKSAvIGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKS4K
LSAgICAvLyBGSVhNRTogTWFrZSBwcml2YXRlIG9uY2UgYWxsIHVzZXJzIGhhdmUgYmVlbiBwb3J0
ZWQuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IFN0cmluZyhjb25zdCBjaGFyKiBj
aGFyYWN0ZXJzKTsKLQogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIFN0cmluZyBmcm9tTGF0aW4x
KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIHsgcmV0dXJuIFN0cmluZyB7IGNoYXJhY3RlcnMgfTsg
fQogCiAgICAgLy8gQ29uc3RydWN0IGEgc3RyaW5nIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFN0
cmluZ0ltcGwuCkBAIC0zNDcsNiArMzQyLDkgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxib29s
IGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxpdEludGVybmFsKFVDaGFyIHNl
cGFyYXRvcikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Ym9vbCBhbGxvd0VtcHR5RW50cmllcz4gVmVj
dG9yPFN0cmluZz4gc3BsaXRJbnRlcm5hbChTdHJpbmdWaWV3IHNlcGFyYXRvcikgY29uc3Q7CiAK
KyAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHJpdmF0ZS4gVXNlIGZyb21MYXRpbjEoKSAv
IGZyb21VVEY4KCkgLyBTdHJpbmcoQVNDSUlMaXRlcmFsKSBpbnN0ZWFkLgorICAgIFdURl9FWFBP
UlRfUFJJVkFURSBleHBsaWNpdCBTdHJpbmcoY29uc3QgY2hhciogY2hhcmFjdGVycyk7CisKICAg
ICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFn
ZVVuaXguY3BwCmluZGV4IGFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIu
LjhiZTJmNjFmNzliNWM1YTk3NWNjNTExOThkMWI4ZWUwMjQ3MjNhMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAv
LyBhbHdheXMgdGhlIHNhbWUgdmFsdWUuCiBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2Uo
KQogewotICAgIFN0cmluZyBsb2NhbGVEZWZhdWx0KHNldGxvY2FsZShMQ19DVFlQRSwgbnVsbHB0
cikpOworICAgIGF1dG8gbG9jYWxlRGVmYXVsdCA9IFN0cmluZzo6ZnJvbUxhdGluMShzZXRsb2Nh
bGUoTENfQ1RZUEUsIG51bGxwdHIpKTsKICAgICBpZiAobG9jYWxlRGVmYXVsdC5pc0VtcHR5KCkg
fHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsb2NhbGVEZWZhdWx0LCAiQyIpIHx8IGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobG9jYWxlRGVmYXVsdCwgIlBPU0lYIikpCiAgICAgICAgIHJldHVybiAi
ZW4tVVMiX3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTG9nZ2luZ1VuaXgu
Y3BwIGIvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggOThiZjU2NmNl
MjVjYTVlNmNmMWY0MTlkNDMwNzUyMmE5MzUxYzU0NC4uNTRkODZjZjg2ZTlmZjgwOGQzNDg0ZWI2
MDQ4MzUxNmUxMmU1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5n
VW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKICAgICBXVEZMb2dBbHdheXMoIldF
QktJVF9ERUJVRyBpcyBub3QgZW1wdHksIGJ1dCB0aGlzIGlzIGEgcmVsZWFzZSBidWlsZC4gTm90
aWNlIHRoYXQgbWFueSBsb2cgbWVzc2FnZXMgd2lsbCBvbmx5IGFwcGVhciBpbiBhIGRlYnVnIGJ1
aWxkLiIpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gU3RyaW5nIHsgbG9nRW52IH07CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbUxhdGluMShsb2dFbnYpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCmlu
ZGV4IDJkMzI4ZjZhZmQ1YTI4NTYxZTk5YzBmMTNlNGZjNjZiNTA2N2I5NDUuLmE0MmZmM2ZkZWFl
YWY4MDA2MDcwNWEyNzU2NzZkNGVjZGZlNzBmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWY8UlRD
RGF0YUNoYW5uZWxFdmVudD4gR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRh
Q2hhbm5lbEV2ZW50KERvYwogICAgIGluaXQub3JkZXJlZCA9IG9yZGVyZWQ7CiAgICAgaW5pdC5t
YXhQYWNrZXRMaWZlVGltZSA9IG1heFBhY2tldExpZmVUaW1lOwogICAgIGluaXQubWF4UmV0cmFu
c21pdHMgPSBtYXhSZXRyYW5zbWl0czsKLSAgICBpbml0LnByb3RvY29sID0gU3RyaW5nKHByb3Rv
Y29sLmdldCgpKTsKKyAgICBpbml0LnByb3RvY29sID0gU3RyaW5nOjpmcm9tVVRGOChwcm90b2Nv
bC5nZXQoKSk7CiAgICAgaW5pdC5uZWdvdGlhdGVkID0gbmVnb3RpYXRlZDsKICAgICBpbml0Lmlk
ID0gaWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKaW5k
ZXggMjllMjU1NzY0ZWEzNWYxMjRlMWM5YmRhMTNmOTgzNTkwYTA4MTJiNy4uZTE2NDcwYjhhNDI5
ZDNhODUyYzRkN2JiMWI2NWYxZWI0M2EwMjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyTWVkaWFFbmRwb2ludC5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxzdGQ6OnBhaXI8UlRDU2RwVHlwZSwgU3RyaW5nPj4gZmV0Y2hEZXNjcmlwdGlvbihHc3RF
bGVtZW50KgogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZHBTdHJpbmcoZ3N0X3NkcF9tZXNzYWdl
X2FzX3RleHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgIEdTVF9UUkFDRV9PQkpFQ1Qod2VicnRj
QmluLCAiJXMtZGVzY3JpcHRpb24gU0RQOiAlcyIsIG5hbWUsIHNkcFN0cmluZy5nZXQoKSk7Ci0g
ICAgcmV0dXJuIHsgeyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0
KCkpLCBTdHJpbmcgeyBzZHBTdHJpbmcuZ2V0KCkgfSB9IH07CisgICAgcmV0dXJuIHsgeyBmcm9t
U2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24uZ2V0KCkpLCBTdHJpbmc6OmZyb21M
YXRpbjEoc2RwU3RyaW5nLmdldCgpKSB9IH07CiB9CiAKIHN0YXRpYyBHc3RXZWJSVENTaWduYWxp
bmdTdGF0ZSBmZXRjaFNpZ25hbGluZ1N0YXRlKEdzdEVsZW1lbnQqIHdlYnJ0Y0JpbikKQEAgLTQ1
Niw3ICs0NTYsNyBAQCB2b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OnN0b3JlUmVtb3RlTUxp
bmVJbmZvKEdzdFNEUE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIG1fbWVkaWFGb3JNaWQuc2V0KFN0cmluZyB7IG1pZCB9LCBnX3N0
cl9lcXVhbChtZWRpYVR5cGUsICJhdWRpbyJfcykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbyA6IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKKyAgICAgICAgbV9t
ZWRpYUZvck1pZC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZCksIGdfc3RyX2VxdWFsKG1lZGlh
VHlwZSwgImF1ZGlvIl9zKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogCiAgICAgICAgIC8vIGh0dHBzOi8vZ2l0
bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFkLy0vbWVyZ2VfcmVx
dWVzdHMvMTkwNwogICAgICAgICBpZiAoc2RwTWVkaWFIYXNBdHRyaWJ1dGVLZXkobWVkaWEsICJp
Y2UtbGl0ZSIpKSB7CkBAIC03MzMsNyArNzMzLDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBv
aW50OjphZGRSZW1vdGVTdHJlYW0oR3N0UGFkKiBwYWQpCiAgICAgYXV0byBzZHBTdHJpbmcgPSBt
YWtlU3RyaW5nKHNkcC5nZXQoKSk7CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBuYW1lKGdzdF9w
YWRfZ2V0X25hbWUocGFkKSk7Ci0gICAgU3RyaW5nIGxhYmVsKG5hbWUuZ2V0KCkpOworICAgIGF1
dG8gbGFiZWwgPSBTdHJpbmc6OmZyb21MYXRpbjEobmFtZS5nZXQoKSk7CiAgICAgYXV0byBrZXkg
PSBtYWtlU3RyaW5nKCJtc2lkOiIpOwogICAgIGF1dG8gbGluZXMgPSBzZHBTdHJpbmcuc3BsaXQo
J1xuJyk7CiAgICAgZm9yIChhdXRvJiBsaW5lIDogbGluZXMpIHsKQEAgLTEwODUsOSArMTA4NSw5
IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9u
U3VjY2VlZGVkKEdVbmlxdWVQdHI8R3N0V2ViCiAKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBz
ZHAoZ3N0X3NkcF9tZXNzYWdlX2FzX3RleHQoZGVzY3JpcHRpb24tPnNkcCkpOwogICAgICAgICBp
ZiAobV9pc0luaXRpYXRvcikKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNy
ZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsKKyAgICAgICAgICAgIG1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZzo6ZnJvbUxh
dGluMShzZHAuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZyB7IHNkcC5nZXQoKSB9KTsK
KyAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2NlZWRl
ZChTdHJpbmc6OmZyb21MYXRpbjEoc2RwLmdldCgpKSk7CiAgICAgfSk7CiB9CiAKQEAgLTExMjUs
NyArMTEyNSw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6Y29sbGVjdFRyYW5zY2Vp
dmVycygpCiAgICAgICAgIGlmICghcmVjZWl2ZXIgfHwgIW1pZCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2Vp
dmVyKFdURjo6bWFrZVVuaXF1ZTxHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1v
dmUoY3VycmVudCkpLCBtX21lZGlhRm9yTWlkLmdldChTdHJpbmcgeyBtaWQuZ2V0KCkgfSkpOwor
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihXVEY6
Om1ha2VVbmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1cnJl
bnQpKSwgbV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nOjpmcm9tTGF0aW4xKG1pZC5nZXQoKSkpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2Nl
aXZlckJhY2tlbmQuY3BwCmluZGV4IGU3NzhmNmQ0ZjBjMGI0Njc4MjMwYzYyY2Q2NjAyYThlOWM2
MTNmYmEuLjVhOTMyYjFiNmM2OWVmNWNmMTk5NmZjMzQ3ZmQyYWQzYjJlZTU0NWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcApA
QCAtNzksNyArNzksNyBAQCBTdHJpbmcgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpt
aWQoKQogewogICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbWlkOwogICAgIGdfb2JqZWN0X2dldCht
X3J0Y1RyYW5zY2VpdmVyLmdldCgpLCAibWlkIiwgJm1pZC5vdXRQdHIoKSwgbnVsbHB0cik7Ci0g
ICAgcmV0dXJuIFN0cmluZyB7IG1pZC5nZXQoKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21M
YXRpbjEobWlkLmdldCgpKTsKIH0KIAogdm9pZCBHU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tl
bmQ6OnN0b3AoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHNDb2xsZWN0b3IuY3Bw
CmluZGV4IGRjZjdhZDFlOGM3MDhhYWZjZWU1YzkwZjA2OTAzNDIxZWM1MWFmMDUuLmM2YzJmYjc1
NTA4YTQzMmY3NzRlZTY5YThjNjljNzk4OWExZmIxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKQEAgLTQzLDE1ICs0MywxNSBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgZmlsbFJUQ1N0YXRzKFJUQ1N0YXRzUmVwb3J0OjpTdGF0cyYgc3RhdHMsIGNvbnN0
IEdzdFN0cnVjdHVyZQogICAgIGRvdWJsZSB0aW1lc3RhbXA7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1
cmVfZ2V0X2RvdWJsZShzdHJ1Y3R1cmUsICJ0aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKICAgICAg
ICAgc3RhdHMudGltZXN0YW1wID0gdGltZXN0YW1wOwotICAgIHN0YXRzLmlkID0gU3RyaW5nIHsg
Z3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlkIikgfTsKKyAgICBzdGF0cy5p
ZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0dXJl
LCAiaWQiKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUlRDUlRQU3RyZWFtU3RhdHMo
UlRDU3RhdHNSZXBvcnQ6OlJ0cFN0cmVhbVN0YXRzJiBzdGF0cywgY29uc3QgR3N0U3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiB7CiAgICAgZmlsbFJUQ1N0YXRzKHN0YXRzLCBzdHJ1Y3R1cmUpOwogCi0g
ICAgc3RhdHMudHJhbnNwb3J0SWQgPSBTdHJpbmcgeyBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmco
c3RydWN0dXJlLCAidHJhbnNwb3J0LWlkIikgfTsKLSAgICBzdGF0cy5jb2RlY0lkID0gU3RyaW5n
IHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImNvZGVjLWlkIikgfTsKKyAg
ICBzdGF0cy50cmFuc3BvcnRJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dl
dF9zdHJpbmcoc3RydWN0dXJlLCAidHJhbnNwb3J0LWlkIikpOworICAgIHN0YXRzLmNvZGVjSWQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwg
ImNvZGVjLWlkIikpOwogCiAgICAgdW5zaWduZWQgdmFsdWU7CiAgICAgaWYgKGdzdF9zdHJ1Y3R1
cmVfZ2V0X3VpbnQoc3RydWN0dXJlLCAic3NyYyIsICZ2YWx1ZSkpCkBAIC0xNjYsNyArMTY2LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIGZpbGxPdXRib3VuZFJUUFN0cmVhbVN0YXRzKFJUQ1N0YXRz
UmVwb3J0OjpPdXRib3VuZFJ0cFN0cmVhbVMKICAgICAgICAgc3RhdHMubmFja0NvdW50ID0gbmFj
a0NvdW50OwogCiAgICAgaWYgKGNvbnN0IGNoYXIqIHJlbW90ZUlkID0gZ3N0X3N0cnVjdHVyZV9n
ZXRfc3RyaW5nKHN0cnVjdHVyZSwgInJlbW90ZS1pZCIpKQotICAgICAgICBzdGF0cy5yZW1vdGVJ
ZCA9IFN0cmluZyB7IHJlbW90ZUlkIH07CisgICAgICAgIHN0YXRzLnJlbW90ZUlkID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHJlbW90ZUlkKTsKIAogICAgIC8vIEZJWE1FCiAgICAgLy8gc3RhdHMudGFy
Z2V0Qml0cmF0ZSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5jcHAKaW5k
ZXggNmExNjM2YzZkZGI2ZTZmYjU5NWE4YzVkMmZlMjBiZDczNzQ2MWE0Ny4uYjcwNjMwNzI2ZjNj
YzBhYTExZDczYzljYjc2YTIyNTYxZGRhM2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
cldlYlJUQ1V0aWxzLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgUlRDUnRw
RW5jb2RpbmdQYXJhbWV0ZXJzIHRvUlRDRW5jb2RpbmdQYXJhbWV0ZXJzKGNvbnN0IEdzdFN0cnVj
dHVyCiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X3VpbnQ2NChydGNQYXJhbWV0ZXJzLCAibWF4
LWZyYW1lcmF0ZSIsICZtYXhGcmFtZXJhdGUpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heEZyYW1l
cmF0ZSA9IG1heEZyYW1lcmF0ZTsKIAotICAgIHBhcmFtZXRlcnMucmlkID0gU3RyaW5nIHsgZ3N0
X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHJ0Y1BhcmFtZXRlcnMsICJyaWQiKSB9OworICAgIHBhcmFt
ZXRlcnMucmlkID0gU3RyaW5nOjpmcm9tVVRGOChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRj
UGFyYW1ldGVycywgInJpZCIpKTsKIAogICAgIGRvdWJsZSBzY2FsZVJlc29sdXRpb25Eb3duQnk7
CiAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RvdWJsZShydGNQYXJhbWV0ZXJzLCAic2NhbGUt
cmVzb2x1dGlvbi1kb3duLWJ5IiwgJnNjYWxlUmVzb2x1dGlvbkRvd25CeSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwCmluZGV4IGI1ODZmYzdhYjU5NTQ5ODRkNzcxZmMzYTVhNWQ4NDkzYmYwMzZiZDMuLjAyZjAw
ZGU0MWFhMWUwN2QzYjIxZTBmNzhiYjA3NWQ4ZWI5NThjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBA
IC0xOTA0LDcgKzE5MDQsNyBAQCBHQ0dMZW51bSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdDR0xlbnVtIHRhcmdldCkKICAgICBjb25zdCBjaGFyKiBy
ZWFzb24gPSAiZnJhbWVidWZmZXIgaW5jb21wbGV0ZSI7CiAgICAgR0NHTGVudW0gcmVzdWx0ID0g
dGFyZ2V0RnJhbWVidWZmZXItPmNoZWNrU3RhdHVzKCZyZWFzb24pOwogICAgIGlmIChyZXN1bHQg
IT0gR3JhcGhpY3NDb250ZXh0R0w6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICAgIFN0
cmluZyBzdHIgPSAiV2ViR0w6IGNoZWNrRnJhbWVidWZmZXJTdGF0dXM6IiArIFN0cmluZyhyZWFz
b24pOworICAgICAgICBTdHJpbmcgc3RyID0gbWFrZVN0cmluZygiV2ViR0w6IGNoZWNrRnJhbWVi
dWZmZXJTdGF0dXM6ICIsIHJlYXNvbik7CiAgICAgICAgIHByaW50VG9Db25zb2xlKE1lc3NhZ2VM
ZXZlbDo6V2FybmluZywgc3RyKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAppbmRl
eCAzYWQzNzk5MjkxZDE3YWRmZTIzYTI0NjE3ODI1MmMwZDY5OGYyYWFkLi5jMTUxZGZmNTI1OTBl
M2JlOTIxNzUzZjQyYTA2NzI2ZDc5ZTQ4Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6bG9hZEdSZXNvdXJjZSgpCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8R0Vy
cm9yPiBlcnJvcjsKICAgICAgICAgR1JlZlB0cjxHQnl0ZXM+IGJ5dGVzID0gYWRvcHRHUmVmKHN0
YXRpY19jYXN0PEdCeXRlcyo+KGdfdGFza19wcm9wYWdhdGVfcG9pbnRlcih0YXNrLCAmZXJyb3Iu
b3V0UHRyKCkpKSk7CiAgICAgICAgIGlmICghYnl0ZXMpIHsKLSAgICAgICAgICAgIGxvYWRlci0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5k
b21haW4pIH0sIGVycm9yLT5jb2RlLCB1cmwsIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3Nh
Z2UpKSk7CisgICAgICAgICAgICBsb2FkZXItPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6
OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29k
ZSwgdXJsLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRl
cjo6bG9hZEdSZXNvdXJjZSgpCiAgICAgICAgIGNvbnN0IGF1dG8qIGRhdGEgPSBzdGF0aWNfY2Fz
dDxjb25zdCBndWNoYXIqPihnX2J5dGVzX2dldF9kYXRhKGJ5dGVzLmdldCgpLCAmZGF0YVNpemUp
KTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBmaWxlTmFtZShnX3BhdGhfZ2V0X2Jhc2VuYW1l
KHVybC5wYXRoKCkudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGNv
bnRlbnRUeXBlKGdfY29udGVudF90eXBlX2d1ZXNzKGZpbGVOYW1lLmdldCgpLCBkYXRhLCBkYXRh
U2l6ZSwgbnVsbHB0cikpOwotICAgICAgICBTdHJpbmcgY29udGVudFR5cGVTdHJpbmcgeyBjb250
ZW50VHlwZS5nZXQoKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlU3RyaW5nID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGNvbnRlbnRUeXBlLmdldCgpKTsKICAgICAgICAgUmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSB7IHVybCwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlw
ZVN0cmluZyksIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oZGF0YVNpemUpLCBleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUoY29udGVudFR5cGVTdHJpbmcpLnRvU3RyaW5nKCkgfTsKICAgICAgICAg
cmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAgICAgcmVzcG9uc2Uuc2V0SFRU
UFN0YXR1c1RleHQoIk9LIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCmlu
ZGV4IGMwN2NjZTQ4NmM3YzZjNWFlYzFiMzc2Nzk3MTU4MGE5MTVkZDY0MGUuLmI1YzA0NTllMWMx
MDAzMjJjNTk2NTg1NjU3YWFiOGQ1YjY1MTI3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3JCYXNlLmNwcApAQCAtOTMsNyArOTMsNyBAQCBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cGxhdGZv
cm0oKSBjb25zdAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwogICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKICAgICAgICAgc3RydWN0IHV0c25hbWUgb3NuYW1lOwot
ICAgICAgICBwbGF0Zm9ybU5hbWUuY29uc3RydWN0KHVuYW1lKCZvc25hbWUpID49IDAgPyBTdHJp
bmcob3NuYW1lLnN5c25hbWUpICsgIiAiX3N0ciArIFN0cmluZyhvc25hbWUubWFjaGluZSkgOiBT
dHJpbmcoIiJfcykpOworICAgICAgICBwbGF0Zm9ybU5hbWUuY29uc3RydWN0KHVuYW1lKCZvc25h
bWUpID49IDAgPyBtYWtlU3RyaW5nKG9zbmFtZS5zeXNuYW1lLCAiICIsIG9zbmFtZS5tYWNoaW5l
KSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIH0pOwogICAgIHJldHVybiBwbGF0Zm9ybU5hbWUtPmlz
b2xhdGVkQ29weSgpOwogI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAppbmRl
eCBjNWRlMWI2OGI1Y2NjYTRiOGM5ODUzYjMzOGI0OTgyMThlMTQzODlhLi5iMjhhNWE0ZThmNmY3
NjUwMjE5ZTcyMjBhZjBiNDc0OGUyMDE3ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCkBAIC0xODYsMTMgKzE4
NiwxMyBAQCBib29sIEFOR0xFV2ViS2l0QnJpZGdlOjpjb21waWxlU2hhZGVyU291cmNlKGNvbnN0
IGNoYXIqIHNoYWRlclNvdXJjZSwgQU5HTEVTaGFkZQogICAgIGlmICghdmFsaWRhdGVTdWNjZXNz
KSB7CiAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBsb2cgPSBzaDo6R2V0SW5mb0xvZyhjb21w
aWxlcik7CiAgICAgICAgIGlmIChsb2cubGVuZ3RoKCkpCi0gICAgICAgICAgICBzaGFkZXJWYWxp
ZGF0aW9uTG9nID0gU3RyaW5nIHsgbG9nLmNfc3RyKCkgfTsKKyAgICAgICAgICAgIHNoYWRlclZh
bGlkYXRpb25Mb2cgPSBTdHJpbmc6OmZyb21MYXRpbjEobG9nLmNfc3RyKCkpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG9iamVjdENvZGUg
PSBzaDo6R2V0T2JqZWN0Q29kZShjb21waWxlcik7CiAgICAgaWYgKG9iamVjdENvZGUubGVuZ3Ro
KCkpCi0gICAgICAgIHRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UgPSBTdHJpbmcgeyBvYmplY3RDb2Rl
LmNfc3RyKCkgfTsKKyAgICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmluZzo6ZnJv
bUxhdGluMShvYmplY3RDb2RlLmNfc3RyKCkpOwogICAgIAogICAgIGlmICghZ2V0U3ltYm9sSW5m
byhjb21waWxlciwgU0hBREVSX1NZTUJPTF9UWVBFX0FUVFJJQlVURSwgc3ltYm9scykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuY3BwCmluZGV4IDdkMDA1N2ZjMjlkNjYwN2RjZDU3ZWMyZGU3OTFjMzdhNDQ2ZWRk
ODEuLmUwZjgwMDZjZjE5NGU0MTYwOTBkMWJjMWZmNDcyMmE5M2UxYjQxMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTc2LDcgKzE3
Niw3IEBAIHVuc2lnbmVkIEdMQ29udGV4dDo6dmVyc2lvbigpCiAgICAgaWYgKCFtX3ZlcnNpb24p
IHsKICAgICAgICAgLy8gVmVyc2lvbiBzdHJpbmcgY2FuIHN0YXJ0IHdpdGggdGhlIHZlcnNpb24g
bnVtYmVyIChhbGwgdmVyc2lvbnMgZXhjZXB0IEdMRVMgMSBhbmQgMikgb3Igd2l0aAogICAgICAg
ICAvLyAiT3BlbkdMIi4gRGlmZmVyZW50IGZpZWxkcyBpbnNpZGUgdGhlIHZlcnNpb24gc3RyaW5n
IGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLgotICAgICAgICBTdHJpbmcgdmVyc2lvblN0cmluZyA9
IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZF
UlNJT04pKSk7CisgICAgICAgIGF1dG8gdmVyc2lvblN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGlu
MShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFUlNJT04p
KSk7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZlcnNpb25TdHJpbmdDb21wb25lbnRzID0gdmVy
c2lvblN0cmluZy5zcGxpdCgnICcpOwogCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZlcnNpb25E
aWdpdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCBmZDlmNzhlN2QyMTRlODk5MDhhMDY1OGFiZGY2ZTk1NzA2OTdmYmI2Li4zMjQyMDkwNjg3
Zjc3ODFlZTBkM2I0ZDZhZmM1MGVmZjRkZjYzYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRp
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBBdWRpb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlQ29uZmlndXJhdGlvbkZyb21DYXBzKCkKIAogI2lm
IEdTVF9DSEVDS19WRVJTSU9OKDEsIDIwLCAwKQogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY29kZWMo
Z3N0X2NvZGVjX3V0aWxzX2NhcHNfZ2V0X21pbWVfY29kZWMoY2Fwcy5nZXQoKSkpOwotICAgIGNv
bmZpZ3VyYXRpb24uY29kZWMgPSBTdHJpbmcgeyBjb2RlYy5nZXQoKSB9OworICAgIGNvbmZpZ3Vy
YXRpb24uY29kZWMgPSBTdHJpbmc6OmZyb21MYXRpbjEoY29kZWMuZ2V0KCkpOwogI2VuZGlmCiAK
ICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9u
LmNwcAppbmRleCA3YTM2MjYzZmUwMTEzNDQwZTU0NTZjMTkyZDlhMTg0NTI5Yzk1Yjk4Li5kNDIw
ZDQ4MTM5MzNiOWY1OWNmY2ZlNzRiZThmYzM2N2U0ZDNhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
Q29tbW9uLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZUdzdFN0
cnVjdHVyZVZhbHVlKEdRdWFyayBmaWVsZElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBncG9pCiB7
CiAgICAgaWYgKGF1dG8ganNvblZhbHVlID0gZ3N0U3RydWN0dXJlVmFsdWVUb0pTT04odmFsdWUp
KSB7CiAgICAgICAgIGF1dG8qIG9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNPTjo6T2JqZWN0
Kj4odXNlckRhdGEpOwotICAgICAgICBvYmplY3QtPnNldFZhbHVlKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGZpZWxkSWQpIH0sIGpzb25WYWx1ZS0+cmVsZWFzZU5vbk51bGwoKSk7CisgICAg
ICAgIG9iamVjdC0+c2V0VmFsdWUoU3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5n
KGZpZWxkSWQpKSwganNvblZhbHVlLT5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAgcmV0
dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
CmluZGV4IGJkNmJlNmY3YTYzMGUzNmNjN2JmMTU4NTJiNjBlMjIxYjE2NzI0NzUuLjY3ZDcwY2Jj
ZjcyMzIzZTIwOTM5MjQwZDRkNDcwYzQzODExNjYwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OkVsZW1lbnQKICAgICBpZiAoc2hvdWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPT0gQ2hl
Y2tIYXJkd2FyZUNsYXNzaWZpZXI6OlllcykgewogICAgICAgICBmb3IgKEdMaXN0KiBmYWN0b3Jp
ZXMgPSBjYW5kaWRhdGVzOyBmYWN0b3JpZXM7IGZhY3RvcmllcyA9IGdfbGlzdF9uZXh0KGZhY3Rv
cmllcykpIHsKICAgICAgICAgICAgIGF1dG8qIGZhY3RvcnkgPSByZWludGVycHJldF9jYXN0PEdz
dEVsZW1lbnRGYWN0b3J5Kj4oZmFjdG9yaWVzLT5kYXRhKTsKLSAgICAgICAgICAgIFN0cmluZyBt
ZXRhZGF0YSB7IGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhKGZhY3RvcnksIEdTVF9F
TEVNRU5UX01FVEFEQVRBX0tMQVNTKSB9OworICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YShmYWN0b3J5
LCBHU1RfRUxFTUVOVF9NRVRBREFUQV9LTEFTUykpOwogICAgICAgICAgICAgYXV0byBjb21wb25l
bnRzID0gbWV0YWRhdGEuc3BsaXQoJy8nKTsKICAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmNv
bnRhaW5zKCJIYXJkd2FyZSIpKSB7CiAgICAgICAgICAgICAgICAgaXNVc2luZ0hhcmR3YXJlID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
aW5kZXggYWJkMzYyOTYyYTQzNTYwODIyMzNjYjE0YTk5MDdkOTA2MzRhNmRjNy4uMDFmZWZlYTMy
ZDIxMzZkZmQxZTFmM2MyNWI4MTYyNjk2OTBmYmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50
VHlwZSYsIE1lZGlhU291cgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQo
TWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgbV9zdHJlYW1Qcml2YXRlID0gJnN0
cmVhbTsKLSAgICBsb2FkKFN0cmluZygibWVkaWFzdHJlYW06Ly8iKSArIHN0cmVhbS5pZCgpKTsK
KyAgICBsb2FkKG1ha2VTdHJpbmcoIm1lZGlhc3RyZWFtOi8vIiwgc3RyZWFtLmlkKCkpKTsKICAg
ICBzeW5jT25DbG9jayhmYWxzZSk7CiAKICAgICBtX3BsYXllci0+cGxheSgpOwpAQCAtMTczNSw3
ICsxNzM1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3Nh
Z2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3Io
bWVzc2FnZSwgJmVyci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0cigpKTsKICAgICAgICAgR1NUX0VS
Uk9SKCJFcnJvciAlZDogJXMgKHVybD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91
cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBT
dHJpbmcgeyBlcnItPm1lc3NhZ2UgfTsKKyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmc6
OmZyb21MYXRpbjEoZXJyLT5tZXNzYWdlKTsKIAogICAgICAgICBlcnJvciA9IE1lZGlhUGxheWVy
OjpOZXR3b3JrU3RhdGU6OkVtcHR5OwogICAgICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVyci5n
ZXQoKSwgR1NUX1NUUkVBTV9FUlJPUiwgR1NUX1NUUkVBTV9FUlJPUl9DT0RFQ19OT1RfRk9VTkQp
CkBAIC0xODg5LDcgKzE4ODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBlbHNlIGlmIChnc3Rf
c3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImh0dHAtaGVhZGVycyIpKSB7CiAgICAgICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJQcm9jZXNzaW5nIEhUVFAgaGVhZGVy
czogJSIgR1NUX1BUUl9GT1JNQVQsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICBpZiAoY29uc3Qg
Y2hhciogdXJpID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVyaSIpKSB7
Ci0gICAgICAgICAgICAgICAgVVJMIHVybCB7IFN0cmluZyB7IHVyaSB9IH07CisgICAgICAgICAg
ICAgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMSh1cmkpIH07CiAgICAgICAgICAgICAg
ICAgbV9vcmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKHVybCAhPSBtX3VybCkgewpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNvbmZpZ3VyZURvd25sb2FkQnVmZmVyKEdzdEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgZ19vYmplY3Rfc2V0KGVsZW1lbnQsICJ0ZW1wLXRlbXBsYXRl
IiwgbmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSwgbnVsbHB0cik7CiAgICAgR1NUX0RFQlVHX09C
SkVDVChwaXBlbGluZSgpLCAiUmVjb25maWd1cmVkIGZpbGUgZG93bmxvYWQgdGVtcGxhdGUgZnJv
bSAnJXMnIHRvICclcyciLCBvbGREb3dubG9hZFRlbXBsYXRlLmdldCgpLCBuZXdEb3dubG9hZFRl
bXBsYXRlLmdldCgpKTsKIAotICAgIFN0cmluZyBuZXdEb3dubG9hZFByZWZpeFBhdGggeyBuZXdE
b3dubG9hZFRlbXBsYXRlLmdldCgpIH07CisgICAgYXV0byBuZXdEb3dubG9hZFByZWZpeFBhdGgg
PSBTdHJpbmc6OmZyb21MYXRpbjEobmV3RG93bmxvYWRUZW1wbGF0ZS5nZXQoKSk7CiAgICAgcHVy
Z2VPbGREb3dubG9hZEZpbGVzKG5ld0Rvd25sb2FkUHJlZml4UGF0aC5yZXBsYWNlKCJYWFhYWFgi
LCAiIikpOwogfQogCkBAIC0yNDcwLDExICsyNDcwLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0aW9uKCkKICAgICAgICAgLy8gdGhvdWdoLiBXZSBu
ZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJsIGFuZAogICAgICAgICAvLyBh
cHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4KICAgICAgICAgVVJMIGJhc2VV
cmwgPSBnc3RfdXJpX2lzX3ZhbGlkKG5ld0xvY2F0aW9uKSA/IFVSTCgpIDogbV91cmw7Ci0gICAg
ICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nIHsgbmV3TG9jYXRpb24gfSk7Cisg
ICAgICAgIFVSTCBuZXdVcmwgPSBVUkwoYmFzZVVybCwgU3RyaW5nOjpmcm9tTGF0aW4xKG5ld0xv
Y2F0aW9uKSk7CiAKICAgICAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gcGxheWJpblVybFN0cjsK
ICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGlwZWxpbmUuZ2V0KCksICJjdXJyZW50LXVyaSIsICZw
bGF5YmluVXJsU3RyLm91dFB0cigpLCBudWxscHRyKTsKLSAgICAgICAgVVJMIHBsYXliaW5Vcmwg
eyBTdHJpbmcgeyBwbGF5YmluVXJsU3RyLmdldCgpIH0gfTsKKyAgICAgICAgVVJMIHBsYXliaW5V
cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocGxheWJpblVybFN0ci5nZXQoKSkgfTsKIAogICAgICAg
ICBpZiAocGxheWJpblVybCA9PSBuZXdVcmwpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1QocGlwZWxpbmUoKSwgIlBsYXliaW4gYWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9uLiIpOwpA
QCAtMjU5OSw3ICsyNTk5LDcgQEAgYm9vbCBpc01lZGlhRGlza0NhY2hlRGlzYWJsZWQoKQogI2lm
IFBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbXSgpIHsKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIldQ
RV9TSEVMTF9ESVNBQkxFX01FRElBX0RJU0tfQ0FDSEUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0
cmluZzo6ZnJvbUxhdGluMShzdGQ6OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElT
S19DQUNIRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgU3Ry
aW5nIHZhbHVlID0gcy5zdHJpcFdoaXRlU3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0
TG9jYWxlKCk7CiAgICAgICAgICAgICByZXN1bHQgPSAodmFsdWUgPT0gIjEiIHx8IHZhbHVlID09
ICJ0IiB8fCB2YWx1ZSA9PSAidHJ1ZSIpOwpAQCAtMzkxOCw3ICszOTE4LDcgQEAgSW5pdERhdGEg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYXJzZUluaXREYXRhRnJvbVByb3RlY3Rpb25N
ZXNzYWdlKEdzdE1lc3MKICAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7CiAg
ICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50
S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKIAotICAgICAgICAgICAgaW5pdERhdGEuYXBw
ZW5kKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1JZCB9LCBkYXRhIH0pOworICAgICAgICAgICAg
aW5pdERhdGEuYXBwZW5kKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2ZW50S2V5U3lzdGVtSWQpLCBk
YXRhIH0pOwogICAgICAgICAgICAgbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50cy5hZGQoR1NUX0VW
RU5UX1NFUU5VTShldmVudC5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDAzOSw3ICs0
MDM5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVByb3RlY3Rp
b25FdmVudChHc3RFdmVudCogZXZlbnQpCiAgICAgY29uc3QgY2hhciogZXZlbnRLZXlTeXN0ZW1V
VUlEID0gbnVsbHB0cjsKICAgICBHc3RCdWZmZXIqIGluaXREYXRhID0gbnVsbHB0cjsKICAgICBn
c3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudCwgJmV2ZW50S2V5U3lzdGVtVVVJRCwgJmlu
aXREYXRhLCBudWxscHRyKTsKLSAgICBpbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0
cmluZyB7IGV2ZW50S2V5U3lzdGVtVVVJRCB9LCBpbml0RGF0YSB9KTsKKyAgICBpbml0aWFsaXph
dGlvbkRhdGFFbmNvdW50ZXJlZCh7IFN0cmluZzo6ZnJvbUxhdGluMShldmVudEtleVN5c3RlbVVV
SUQpLCBpbml0RGF0YSB9KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OndhaXRpbmdGb3JLZXkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXIuY3BwCmluZGV4IDAzZWRhYzhjOGU5N2JiMWVhYTRiMzNiM2Y0NDU5YWNkYWRmYjk0
NzQuLjI5NTdiY2VmM2QwZDBlMTgyOGVmNWRmN2JmOGJjZTVkZWMyZjhkOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVC
YXNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3ICsxOTUsNyBA
QCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdldExhbmd1YWdlQ29kZShHc3RUYWdM
aXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2YQogewogICAgIFN0cmluZyBsYW5ndWFnZTsKICAgICBp
ZiAoZ2V0VGFnKHRhZ3MsIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSwgbGFuZ3VhZ2UpKSB7Ci0gICAg
ICAgIGxhbmd1YWdlID0gU3RyaW5nIHsgZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5
XzEobGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSkgfTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmc6
OmZyb21MYXRpbjEoZ3N0X3RhZ19nZXRfbGFuZ3VhZ2VfY29kZV9pc29fNjM5XzEobGFuZ3VhZ2Uu
dXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBHU1RfREVCVUcoIkNvbnZlcnRlZCB0cmFjayAlZCdz
IGxhbmd1YWdlIGNvZGUgdG8gJXMuIiwgbV9pbmRleCwgbGFuZ3VhZ2UudXRmOCgpLmRhdGEoKSk7
CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSB2YWx1ZSkgewogICAgICAgICAgICAgdmFsdWUgPSBs
YW5ndWFnZTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6OmdldFRhZyhHc3RUYWdMaXN0KiB0YWdzLCBjb25zdCBnY2hhciogdGFnTmFtZSwgUwogICAg
IEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHRhZ1ZhbHVlOwogICAgIGlmIChnc3RfdGFnX2xpc3RfZ2V0
X3N0cmluZyh0YWdzLCB0YWdOYW1lLCAmdGFnVmFsdWUub3V0UHRyKCkpKSB7CiAgICAgICAgIEdT
VF9ERUJVRygiVHJhY2sgJWQgZ290ICVzICVzLiIsIG1faW5kZXgsIHRhZ05hbWUsIHRhZ1ZhbHVl
LmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgdGFnVmFsdWUuZ2V0KCkgfTsK
KyAgICAgICAgdmFsdWUgPSBTdHJpbmdUeXBlIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHRhZ1ZhbHVl
LmdldCgpKSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvRnJhbWVNZXRhZGF0YUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcAppbmRl
eCBkN2JlODA1MThlZDY5ZWNlY2Q3MTZmYWIyMzIzMGY4Yzc2MGI5NmM1Li4zMDVlNTFhZmY3NWM1
ZmIwYmEzYWVhZDJhMTU0MzBmMmNhNGY0YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9G
cmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgd2Via2l0
R3N0VHJhY2VQcm9jZXNzaW5nVGltZUZvckVsZW1lbnQoR3N0RWxlbWVudCogZWxlbWVudCkKICAg
ICBnc3RfcGFkX2FkZF9wcm9iZShzaW5rUGFkLmdldCgpLCBwcm9iZVR5cGUsIFtdKEdzdFBhZCos
IEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2Jl
UmV0dXJuIHsKICAgICAgICAgYXV0byBbbW9kaWZpZWRCdWZmZXIsIG1ldGFdID0gZW5zdXJlVmlk
ZW9GcmFtZU1ldGFkYXRhKEdTVF9QQURfUFJPQkVfSU5GT19CVUZGRVIoaW5mbykpOwogICAgICAg
ICBHU1RfUEFEX1BST0JFX0lORk9fREFUQShpbmZvKSA9IG1vZGlmaWVkQnVmZmVyOwotICAgICAg
ICBtZXRhLT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHVzZXJEYXRhKSB9LCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGltZXN0
YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKKyAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vz
c2luZ1RpbWVzLnNldChTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
dXNlckRhdGEpKSwgc3RkOjptYWtlX3BhaXIoZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpLCBHU1Rf
Q0xPQ0tfVElNRV9OT05FKSk7CiAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogICAg
IH0sIGdzdF9lbGVtZW50X2dldF9uYW1lKGVsZW1lbnQpLCBnX2ZyZWUpOwogCkBAIC0xMzUsNyAr
MTM1LDcgQEAgdm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RF
bGVtZW50KiBlbGVtZW50KQogICAgICAgICBpZiAoIW1ldGEpCiAgICAgICAgICAgICByZXR1cm4g
R1NUX1BBRF9QUk9CRV9PSzsKIAotICAgICAgICBTdHJpbmcgZWxlbWVudE5hbWUgeyByZWludGVy
cHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkgfTsKKyAgICAgICAgYXV0byBlbGVtZW50TmFtZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNoYXIqPih1c2VyRGF0YSkpOwog
ICAgICAgICBhdXRvIHZhbHVlID0gbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1RpbWVzLmdldChlbGVt
ZW50TmFtZSk7CiAgICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoZWxlbWVu
dE5hbWUsIHN0ZDo6bWFrZV9wYWlyKHZhbHVlLmZpcnN0LCBnc3RfdXRpbF9nZXRfdGltZXN0YW1w
KCkpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBkNjQwNGMxMjBjYThhZGUxMGY3
NWViN2I5YjNhZGMyZDVjM2QzOTBhLi45NmRmY2ZjMTJjZWM3Y2JjMDRlM2QzY2ZiNTk5ZTU3MzVl
MzIzZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1
cGRhdGVDb25maWd1cmF0aW9uRnJvbUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwg
MjAsIDApCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19n
ZXRfbWltZV9jb2RlYyhjYXBzLmdldCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0
cmluZyB7IGNvZGVjLmdldCgpIH07CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6
ZnJvbUxhdGluMShjb2RlYy5nZXQoKSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRB
bmRXYWl0KFsmXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CmluZGV4IGQwYWQ2NzJkNzEwOTdjZjkxMmExNzMyMjcwNWRmMGVlZDNjMjA4ZTMuLmQ1MTFkYTEw
MDE5Y2I0MWQyZTg4NjQ0YzNmM2E5OWI3NzE3ZjhiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgc3RhdGljIGJvb2wg
d2ViS2l0V2ViU3JjU2V0RXh0cmFIZWFkZXIoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSog
dmFsdWUsIGdwb2kKIAogICAgIEdTVF9ERUJVRygiQXBwZW5kaW5nIGV4dHJhIGhlYWRlcjogXCIl
czogJXNcIiIsIGZpZWxkTmFtZSwgZmllbGRDb250ZW50LmdldCgpKTsKICAgICBSZXNvdXJjZVJl
cXVlc3QqIHJlcXVlc3QgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZVJlcXVlc3QqPih1c2VyRGF0YSk7
Ci0gICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZyB7IGZpZWxkTmFtZSB9LCBT
dHJpbmcgeyBmaWVsZENvbnRlbnQuZ2V0KCkgfSk7CisgICAgcmVxdWVzdC0+c2V0SFRUUEhlYWRl
ckZpZWxkKFN0cmluZzo6ZnJvbUxhdGluMShmaWVsZE5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
ZmllbGRDb250ZW50LmdldCgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY0NCw3ICs2
NDQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMq
IHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgIEFTU0VSVChtZW1iZXJzLT5yZXF1
ZXN0ZWRQb3NpdGlvbiAhPSBtZW1iZXJzLT5zdG9wUG9zaXRpb24pOwogCiAgICAgR1NUX0RFQlVH
X09CSkVDVChzcmMsICJQb3N0aW5nIHRhc2sgdG8gcmVxdWVzdCBSJXUgJXMgcmVxdWVzdGVkUG9z
aXRpb249JSIgR19HVUlOVDY0X0ZPUk1BVCAiIHN0b3BQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9S
TUFULCBtZW1iZXJzLT5yZXF1ZXN0TnVtYmVyLCBwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCksIG1l
bWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uLCBtZW1iZXJzLT5zdG9wUG9zaXRpb24pOwotICAgIFVS
TCB1cmwgeyBTdHJpbmcgeyBwcml2LT5vcmlnaW5hbFVSSS5kYXRhKCkgfSB9OworICAgIFVSTCB1
cmwgeyBTdHJpbmc6OmZyb21MYXRpbjEocHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpKSB9OwogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEFsbG93Q29v
a2llcyh0cnVlKTsKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNN
YWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNyYywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgog
ICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKG1lbWJlcnMtPnJlZmVycmVyKTsKIAogICAgIGlm
IChwcml2LT5odHRwTWV0aG9kLmdldCgpKQotICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2Qo
U3RyaW5nIHsgcHJpdi0+aHR0cE1ldGhvZC5nZXQoKSB9KTsKKyAgICAgICAgcmVxdWVzdC5zZXRI
VFRQTWV0aG9kKFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5odHRwTWV0aG9kLmdldCgpKSk7CiAK
ICNpZiBVU0UoU09VUCkKICAgICAvLyBCeSBkZWZhdWx0LCBIVFRQIEFjY2VwdC1FbmNvZGluZyBp
cyBkaXNhYmxlZCBoZXJlIGFzIHdlIGRvbid0CkBAIC02ODEsNyArNjgxLDcgQEAgc3RhdGljIHZv
aWQgd2ViS2l0V2ViU3JjTWFrZVJlcXVlc3QoV2ViS2l0V2ViU3JjKiBzcmMsIERhdGFNdXRleExv
Y2tlcjxXZWJLaXRXZWIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZm9ybWF0ZWRSYW5nZS5y
ZXNldChnX3N0cmR1cF9wcmludGYoImJ5dGVzPSUiIEdfR1VJTlQ2NF9GT1JNQVQgIi0iLCBtZW1i
ZXJzLT5yZXF1ZXN0ZWRQb3NpdGlvbikpOwogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywg
IlJhbmdlIHJlcXVlc3Q6ICVzIiwgZm9ybWF0ZWRSYW5nZS5nZXQoKSk7Ci0gICAgICAgIHJlcXVl
c3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpSYW5nZSwgU3RyaW5nIHsgZm9y
bWF0ZWRSYW5nZS5nZXQoKSB9KTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmc6OmZyb21MYXRpbjEoZm9ybWF0ZWRSYW5nZS5n
ZXQoKSkpOwogICAgIH0KICAgICBBU1NFUlQobWVtYmVycy0+cmVhZFBvc2l0aW9uID09IG1lbWJl
cnMtPnJlcXVlc3RlZFBvc2l0aW9uKTsKIApAQCAtODgxLDcgKzg4MSw3IEBAIGNvbnN0IGdjaGFy
KiBjb25zdCogd2ViS2l0V2ViU3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogCiBzdGF0aWMgVVJMIGNv
bnZlcnRQbGF5YmluVVJJKGNvbnN0IGNoYXIqIHVyaVN0cmluZykKIHsKLSAgICByZXR1cm4gVVJM
IHsgU3RyaW5nIHsgdXJpU3RyaW5nIH0gfTsKKyAgICByZXR1cm4gVVJMIHsgU3RyaW5nOjpmcm9t
TGF0aW4xKHVyaVN0cmluZykgfTsKIH0KIAogc3RhdGljIGdjaGFyKiB3ZWJLaXRXZWJTcmNHZXRV
cmkoR3N0VVJJSGFuZGxlciogaGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCmluZGV4
IDA0ZWFlMDBjYTU1MzllN2QyZDliMjgzOTVjZTlhZTNmNjg3MTIyOWQuLmJjNTM5YTg3NDc4MDI4
MTgxM2Y2YWYzMDBhZTJlMDJiNzZhZTYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcApA
QCAtMTIyLDkgKzEyMiw5IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBDRE1GYWN0b3J5VGh1bmRl
cjo6c3VwcG9ydGVkS2V5U3lzdGVtcygpIGNvbnN0CiAgICAgaWYgKHN1cHBvcnRlZEtleVN5c3Rl
bXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGVtcHR5U3RyaW5nOwogICAgICAg
ICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBvcnRlZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNf
V2lkZXZpbmVLZXlTeXN0ZW0sIGVtcHR5U3RyaW5nLmNfc3RyKCkpID09IEVSUk9SX05PTkUpCi0g
ICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChHU3RyZWFtZXJFTUVVdGlsaXRp
ZXM6OnNfV2lkZXZpbmVLZXlTeXN0ZW0pOworICAgICAgICAgICAgc3VwcG9ydGVkS2V5U3lzdGVt
cy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19XaWRl
dmluZUtleVN5c3RlbSkpOwogICAgICAgICBpZiAob3BlbmNkbV9pc190eXBlX3N1cHBvcnRlZChH
U3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0sIGVtcHR5U3RyaW5nLmNf
c3RyKCkpID09IEVSUk9SX05PTkUpCi0gICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFw
cGVuZChHU3RyZWFtZXJFTUVVdGlsaXRpZXM6OnNfQ2xlYXJLZXlLZXlTeXN0ZW0pOworICAgICAg
ICAgICAgc3VwcG9ydGVkS2V5U3lzdGVtcy5hcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKEdTdHJl
YW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSkpOwogICAgICAgICBHU1RfREVC
VUcoIiV6dSBzdXBwb3J0ZWQga2V5IHN5c3RlbXMiLCBzdXBwb3J0ZWRLZXlTeXN0ZW1zLnNpemUo
KSk7CiAgICAgfTsKICAgICByZXR1cm4gc3VwcG9ydGVkS2V5U3lzdGVtczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVy
RU1FVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL0dTdHJlYW1lckVNRVV0aWxpdGllcy5oCmluZGV4IGQyYWRlODczMGMwNGU3NTUwMmM2
YTA0NGEwMTc5YzkzMjZjOWUzYTguLmFhNjFjNDFhZmNlNDVhY2EyMTdiN2Y1ZWY3ZGRjZTkxZWZi
MjhlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaApAQCAt
MTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgY2hhcioqIHN0cmVhbUVuY3J5
cHRpb25BbGxvd2VkU3lzdGVtcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcioqPihnX3Zh
bHVlX2dldF9ib3hlZChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWYWx1ZSkpOwogICAg
ICAgICBpZiAoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zKSB7CiAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNbaV07ICsr
aSkKLSAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKHN0cmVhbUVuY3J5
cHRpb25BbGxvd2VkU3lzdGVtc1tpXSk7CisgICAgICAgICAgICAgICAgbV9hdmFpbGFibGVTeXN0
ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0
ZW1zW2ldKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgY29uc3QgRXZlbnRWZWN0b3ImIGV2ZW50
cygpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxp
bmUuY3BwCmluZGV4IDFhZjBlNTU0ZDgyYmFlNTgxOTNjYWM2OTc1YWE1YTczMWUwYTM4NWUuLjBi
YjIyZDUyNTkwZWRlMjU3OGYwNGYyNmE2MTZmOTE2MGM0NGIzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
QXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RkOjp0dXBsZTxHUmVmUHRy
PEdzdENhcHM+LCBBcHBlbmRQaXBlbGluZTo6U3RyZWFtVHlwZSwgRmxvYXRTaXplPiBBcHBlbmRQ
aXBlbGkKIAogICAgIGNvbnN0IGNoYXIqIG9yaWdpbmFsTWVkaWFUeXBlID0gY2Fwc01lZGlhVHlw
ZShkZW11eGVyU3JjUGFkQ2Fwcyk7CiAgICAgYXV0byYgZ3N0UmVnaXN0cnlTY2FubmVyID0gR1N0
cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpzaW5nbGV0b24oKTsKLSAgICBpZiAoIWdzdFJlZ2lz
dHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVkKEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29u
ZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmluZyB7IG9yaWdpbmFsTWVkaWFUeXBlIH0pKSB7Cisg
ICAgaWYgKCFnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb2RlY1N1cHBvcnRlZChHU3RyZWFtZXJSZWdp
c3RyeVNjYW5uZXI6OkNvbmZpZ3VyYXRpb246OkRlY29kaW5nLCBTdHJpbmc6OmZyb21MYXRpbjEo
b3JpZ2luYWxNZWRpYVR5cGUpKSkgewogICAgICAgICBzdHJlYW1UeXBlID0gU3RyZWFtVHlwZTo6
SW52YWxpZDsKICAgICB9IGVsc2UgaWYgKGRvQ2Fwc0hhdmVUeXBlKGRlbXV4ZXJTcmNQYWRDYXBz
LCBHU1RfVklERU9fQ0FQU19UWVBFX1BSRUZJWCkpIHsKICAgICAgICAgcHJlc2VudGF0aW9uU2l6
ZSA9IGdldFZpZGVvUmVzb2x1dGlvbkZyb21DYXBzKGRlbXV4ZXJTcmNQYWRDYXBzKS52YWx1ZV9v
cihGbG9hdFNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURl
c2NyaXB0aW9uLmNwcAppbmRleCBmMWVjNjMxYTk3ZTNiZGIyOWJhNDFiNGNkNWZjNjZhNjExMDEz
NGEwLi4wMWYxMGI3OGU2MTY4OTYxYTIwNTE2ZTFhMTc2NGEyNTM4YTQ3ZmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1l
ck1lZGlhRGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKQEAgLTc0LDcg
Kzc0LDcgQEAgQXRvbVN0cmluZyBHU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uOjpleHRyYWN0Q29k
ZWNOYW1lKCkKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkZXNjcmlwdGlvbihnc3Rf
cGJfdXRpbHNfZ2V0X2NvZGVjX2Rlc2NyaXB0aW9uKG9yaWdpbmFsQ2Fwcy5nZXQoKSkpOwotICAg
IFN0cmluZyBjb2RlY05hbWUoZGVzY3JpcHRpb24uZ2V0KCkpOworICAgIGF1dG8gY29kZWNOYW1l
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKGRlc2NyaXB0aW9uLmdldCgpKTsKIAogICAgIC8vIFJlcG9y
dCAiSC4yNjQgKE1haW4gUHJvZmlsZSkiIGFuZCAiSC4yNjQgKEhpZ2ggUHJvZmlsZSkiIGp1c3Qg
YXMgIkguMjY0IiB0byBhbGxvdyBjaGFuZ2VzIGJldHdlZW4gYm90aCB2YXJpYW50cwogICAgIC8v
IGdvIHVubm90aWNlZCB0byB0aGUgU291cmNlQnVmZmVyIGxheWVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYjYxNTBk
YTQzZDE3ODRmZDU1MjVmYmJmYTliODUyNzBlZTAzMDk5ZC4uNWQ1NDE5ZTg0OGVhNjZlNDVmNWQ4
MzM1YjVjOTYyY2U2NDQ1OWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgc2l6ZV90IFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBj
b25zdAogICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJwog
ICAgICAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0ndmlkZW86OTBNLFQ6MTAw
MDAwJwogCi0gICAgICAgIFN0cmluZyBzKHN0ZDo6Z2V0ZW52KCJNU0VfTUFYX0JVRkZFUl9TSVpF
IikpOworICAgICAgICBhdXRvIHMgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RkOjpnZXRlbnYoIk1T
RV9NQVhfQlVGRkVSX1NJWkUiKSk7CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXMgPSBzLnNwbGl0KCcsJyk7CiAgICAgICAgICAg
ICBmb3IgKGNvbnN0IFN0cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xP
cGVuR0wuY3BwCmluZGV4IDkxOTYzZDMyOTA5M2UzNmUwNGEyZDlmYWIxYzNmZGFjMzQ2ZjBhZmYu
LmVlNjQzMWFjODBlMTEwZjU0OTljY2VjMWQ1Y2MwYjZiYzVhMzY4ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0wuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBFeHRlbnNpb25zR0xPcGVu
R0w6OnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2
aXMKIFN0cmluZyBFeHRlbnNpb25zR0xPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogewogICAgIEFT
U0VSVCghbV91c2VJbmRleGVkR2V0U3RyaW5nKTsKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAogI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcApp
bmRleCBlOTIzMjRhY2JmN2U0ZmUwYWFiZTI5MjM3MzQ1MjE0Njg0Y2FlMjljLi5mZWFhNWVkNGFj
MjlkOWY3ZTk3NzE4Zjg5NjE2ZWRkNjRhNTQxZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMQ29tbW9uLmNwcApAQCAtNzQsOCArNzQsOCBAQCBFeHRlbnNpb25zR0xPcGVuR0xDb21t
b246OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbihHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29u
dAogICAgICwgbV9yZXF1aXJlc1Jlc3RyaWN0ZWRNYXhpbXVtVGV4dHVyZVNpemUoZmFsc2UpCiAg
ICAgLCBtX3VzZUluZGV4ZWRHZXRTdHJpbmcodXNlSW5kZXhlZEdldFN0cmluZykKIHsKLSAgICBt
X3ZlbmRvciA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3Ry
aW5nKEdMX1ZFTkRPUikpKTsKLSAgICBtX3JlbmRlcmVyID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfUkVOREVSRVIpKSk7CisgICAgbV92ZW5k
b3IgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpn
bEdldFN0cmluZyhHTF9WRU5ET1IpKSk7CisgICAgbV9yZW5kZXJlciA9IFN0cmluZzo6ZnJvbUxh
dGluMShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1JFTkRF
UkVSKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdmVuZG9yQ29tcG9uZW50cyA9IG1fdmVuZG9y
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkuc3BsaXQoJyAnKTsKICAgICBpZiAodmVuZG9yQ29t
cG9uZW50cy5jb250YWlucygibnZpZGlhIikpCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBFeHRl
bnNpb25zR0xPcGVuR0xDb21tb246OmluaXRpYWxpemVBdmFpbGFibGVFeHRlbnNpb25zKCkKICAg
ICAgICAgR0xpbnQgbnVtRXh0ZW5zaW9ucyA9IDA7CiAgICAgICAgIDo6Z2xHZXRJbnRlZ2VydihH
TF9OVU1fRVhURU5TSU9OUywgJm51bUV4dGVuc2lvbnMpOwogICAgICAgICBmb3IgKEdMaW50IGkg
PSAwOyBpIDwgbnVtRXh0ZW5zaW9uczsgKytpKQotICAgICAgICAgICAgbV9hdmFpbGFibGVFeHRl
bnNpb25zLmFkZChTdHJpbmcgeyByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0
cmluZ2koR0xfRVhURU5TSU9OUywgaSkpIH0pOworICAgICAgICAgICAgbV9hdmFpbGFibGVFeHRl
bnNpb25zLmFkZChTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSkpOwogCiAgICAgICAgIGlmICghbV9h
dmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUkJfdGV4dHVyZV9zdG9yYWdlIl9zKSkg
ewogICAgICAgICAgICAgR0xpbnQgbWFqb3JWZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVTLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xFUy5jcHAKaW5kZXggYjkxMTEwMjU5ODM1ODkwZDY1MTNmYTAzM2MzMmY5NTFlN2VmZGJkOS4u
ZWRhZTEyOTJmMTg5M2VkZDg0MjI0NGJmYTdmZmM0NTYwZDA5OGZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTEVT
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMRVMuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBFeHRlbnNpb25zR0xP
cGVuR0xFUzo6cGxhdGZvcm1TdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAK
IFN0cmluZyBFeHRlbnNpb25zR0xPcGVuR0xFUzo6Z2V0RXh0ZW5zaW9ucygpCiB7Ci0gICAgcmV0
dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X0VYVEVOU0lPTlMpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
Y3BwCmluZGV4IDBhNmE4OGNmMWFkNGM4NGQxMDAxNDRkMzU5NzU5Yjk1YWU3YjIzYmYuLjhmNTQ2
NmE1YTNlN2JlOWVjNmFjMDI5NTlhZmZkZTQ5ODViMDZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmNwcApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgU3RyaW5nIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpnZXRTdHJpbmcoR0NHTGVudW0gbmFtZSkKICAgICBpZiAoIW1ha2VD
b250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4g
U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkp
KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KDo6Z2xHZXRTdHJpbmcobmFtZSkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6aGludChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1vZGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNv
bnRleHRBdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCmluZGV4IDY2ZGJlYzQwYWFj
MmI3Mzk3YTE5MzMxMTY2YzcyYmQ2MjYxNmUwNmUuLjI4NjViOGI4YWE0NDFjMzU5ZTJhNDZhMzRh
ZTY5ZWQ3ZTc3OTdiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGNvbnN0IFRleHR1cmVNYXBwZXJDb250ZXh0
QXR0cmlidXRlcyYgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKQogI2lmIFVT
RShPUEVOR0xfRVMpCiAgICAgICAgIGF0dHJpYnV0ZXMuaXNHTEVTMkNvbXBsaWFudCA9IHRydWU7
CiAKLSAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnNTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgYXV0byBleHRl
bnNpb25zU3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMu
c3VwcG9ydHNOUE9UVGV4dHVyZXMgPSBleHRlbnNpb25zU3RyaW5nLmNvbnRhaW5zKCJHTF9PRVNf
dGV4dHVyZV9ucG90Iik7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFn
ZSA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoIkdMX0VYVF91bnBhY2tfc3ViaW1hZ2UiKTsK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBjN2ExYzI3
MjVkM2QyZTJlZjliZTk3M2Q5Y2ZjOGNmYWI5OGI4OGRmLi45MDZmOWI0M2MwZTdlNzJlMWQyZDZm
NmExZDc5M2Q5OGMxMTBlM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5j
cHAKQEAgLTM0LDcgKzM0LDcgQEAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OlRleHR1cmVNYXBw
ZXJGUFNDb3VudGVyKCkKICAgICAsIG1fbGFzdEZQUygwKQogICAgICwgbV9mcmFtZUNvdW50KDAp
CiB7Ci0gICAgU3RyaW5nIHNob3dGUFNFbnZpcm9ubWVudCB7IGdldGVudigiV0VCS0lUX1NIT1df
RlBTIikgfTsKKyAgICBhdXRvIHNob3dGUFNFbnZpcm9ubWVudCA9IFN0cmluZzo6ZnJvbUxhdGlu
MShnZXRlbnYoIldFQktJVF9TSE9XX0ZQUyIpKTsKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAg
bV9mcHNJbnRlcnZhbCA9IFNlY29uZHMoc2hvd0ZQU0Vudmlyb25tZW50LnRvRG91YmxlKCZvaykp
OwogICAgIGlmIChvayAmJiBtX2Zwc0ludGVydmFsKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCmluZGV4IDk1M2RmMzc4ZWM1ZjFiZjZhMGZhZGQ5
ZDlhYmIxOTdjOGYwMGEwMWYuLjY4Y2IxNTA2YTEwZWEyZTFhZGQwYmJkZDBmNmRmNTMwNGUyNjFm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
CkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBtaW1lVHlwZUNhY2hlKCkKICAgICBpZiAoY2FjaGVkVHlwZXMu
Z2V0KCkuc2l6ZSgpID4gMCkKICAgICAgICAgcmV0dXJuIGNhY2hlZFR5cGVzOwogCi0gICAgY2Fj
aGVkVHlwZXMuZ2V0KCkuYWRkKFN0cmluZygidmlkZW8vbXA0IikpOworICAgIGNhY2hlZFR5cGVz
LmdldCgpLmFkZCgidmlkZW8vbXA0Il9zKTsKIAogICAgIFBST1BWQVJJQU5UIHByb3BWYXJNaW1l
VHlwZUFycmF5OwogICAgIFByb3BWYXJpYW50SW5pdCgmcHJvcFZhck1pbWVUeXBlQXJyYXkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50R3RrLmNwcAppbmRleCBjMDE3ZjIxZmJkODRmMmI4NDJlMDFmMjQ4Y2M0NDA3MjNjYjFh
YWI4Li5kZDVmYjg2MzQyNzdiYWVhOTJiZTZlY2FmNmQyZmJjN2NlN2VlOWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcApAQCAtMTMwMCwxMSArMTMwMCwxMSBAQCBTdHJpbmcgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcodW5zaWduZWQgdmFsKQogICAgIGNhc2UgR0RLX0tF
WV9JU09fRW50ZXI6CiAgICAgY2FzZSBHREtfS0VZX0tQX0VudGVyOgogICAgIGNhc2UgR0RLX0tF
WV9SZXR1cm46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgICAgIHJldHVybiBT
dHJpbmcoIlxyIl9zKTsKICAgICBjYXNlIEdES19LRVlfQmFja1NwYWNlOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJceDgiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Il9zKTsKICAgICBj
YXNlIEdES19LRVlfVGFiOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJcdCIpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJcdCJfcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZ3VuaWNoYXIgYyA9
IGdka19rZXl2YWxfdG9fdW5pY29kZSh2YWwpOwogICAgICAgICBnbG9uZyBud2M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saWJ3cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
TGliV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRMaWJXUEUuY3BwCmluZGV4IDg0MzIzMWQzYjU4YTAyZmQ5ZDkzZDNhMzdiODY5OTdi
ZTU2ZDBmMzAuLmE3MjRmMTI2ZjhmMzg5ZDQ2YmE1YzFhOTQxZWVmNzZmZGM1OWM5NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRMaWJXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRMaWJXUEUuY3BwCkBAIC0xMjk3LDExICsxMjk3LDExIEBAIFN0cmluZyBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwp
CiAgICAgY2FzZSBXUEVfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfS1BfRW50ZXI6
CiAgICAgY2FzZSBXUEVfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgV1BFX0tFWV9CYWNrU3Bh
Y2U6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5n
KCJceDgiX3MpOwogICAgIGNhc2UgV1BFX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
Ilx0Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCAyNTc2NmQ5NzVmMjQ4NDMwMzhhNzYwZTcyNjll
ODRlYzE0MTM2MWE4Li41OTU3Mzk1NTIzMTFiZDNkMWJkNDAxMmFlNWNhMDg2OWJjZGZlN2EyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdl
ci5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEdTdHJlYW1lckNhcHR1cmVEZXZpY2VNYW5h
Z2VyOjphZGREZXZpY2UoR1JlZlB0cjxHc3REZXZpY2U+JiYgZGV2aWNlKQogCiAgICAgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSB0eXBlID0gZGV2aWNlVHlwZSgpOwogICAgIEdVbmlxdWVQdHI8
Y2hhcj4gZGV2aWNlQ2xhc3NDaGFyKGdzdF9kZXZpY2VfZ2V0X2RldmljZV9jbGFzcyhkZXZpY2Uu
Z2V0KCkpKTsKLSAgICBTdHJpbmcgZGV2aWNlQ2xhc3MoU3RyaW5nKGRldmljZUNsYXNzQ2hhci5n
ZXQoKSkpOworICAgIGF1dG8gZGV2aWNlQ2xhc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGV2aWNl
Q2xhc3NDaGFyLmdldCgpKTsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lICYmICFkZXZpY2VDbGFzcy5zdGFydHNXaXRoKCJBdWRpbyIpKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhICYmICFkZXZpY2VDbGFzcy5zdGFydHNXaXRoKCJWaWRlbyIpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckRp
c3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmNwcAppbmRleCA0MWM4YTQ4MzAzODQ2ZDRkYmFlM2IzOTc4NDZiNTI5NzJlNmEwMjA5Li5jMmU4
Njk3YWZkYjZmZGQ4NGQ2MmExM2FkYjZlOWJmOTdhNmRlODE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNw
cApAQCAtOTQsNyArOTQsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZURldmljZU1hbmFnZXI6OmNyZWF0ZURpc3BsYXlDYXB0dXJlUwogICAgIGdfdmFyaWFu
dF9nZXQocmVzdWx0LmdldCgpLCAiKG8pIiwgJm9iamVjdFBhdGgub3V0UHRyKCkpOwogICAgIHdh
aXRSZXNwb25zZVNpZ25hbChvYmplY3RQYXRoLmdldCgpKTsKIAotICAgIFN0cmluZyByZXF1ZXN0
UGF0aChvYmplY3RQYXRoLmdldCgpKTsKKyAgICBhdXRvIHJlcXVlc3RQYXRoID0gU3RyaW5nOjpm
cm9tTGF0aW4xKG9iamVjdFBhdGguZ2V0KCkpOwogICAgIGF1dG8gc2Vzc2lvblBhdGggPSByZXF1
ZXN0UGF0aC5yZXBsYWNlKCIvcmVxdWVzdC8iLCAiL3Nlc3Npb24vIikucmVwbGFjZSh0b2tlbiwg
c2Vzc2lvblRva2VuKTsKIAogICAgIC8vIEZJWE1FOiBNYXliZSBjaGVjayB0aGlzIGRlcGVuZGlu
ZyBvbiBkZXZpY2UudHlwZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAxYTc0YjI1ZDRlZmQ1
OGNmNzViNzNjZmQ2MmIwNzU3NDJmNTI4OGY3Li45Yjk3YWM3ZWYzMTAyZDYxNzNjNGEzODcwNjZk
ODc2ZmQ3YWRjZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtODksNyArODksNyBAQCBib29s
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUdTdHJlYW1lcjo6c2V0UGF5bG9hZFR5cGUoY29u
c3QgR1JlZlB0cjxHc3RDYXBzPgogICAgIGdfb2JqZWN0X3NldChtX3BheWxvYWRlci5nZXQoKSwg
ImF1dG8taGVhZGVyLWV4dGVuc2lvbiIsIEZBTFNFLCBudWxscHRyKTsKIAogICAgIGlmIChjb25z
dCBjaGFyKiBtaW5QVGltZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJt
aW5wdGltZSIpKSB7Ci0gICAgICAgIFN0cmluZyB0aW1lKG1pblBUaW1lKTsKKyAgICAgICAgYXV0
byB0aW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKG1pblBUaW1lKTsKICAgICAgICAgaWYgKGF1dG8g
dmFsdWUgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazxpbnQ2NF90Pih0aW1lKSkK
ICAgICAgICAgICAgIGdfb2JqZWN0X3NldChtX3BheWxvYWRlci5nZXQoKSwgIm1pbi1wdGltZSIs
ICp2YWx1ZSAqIEdTVF9NU0VDT05ELCBudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJbmZvQ3Vy
bC5jcHAKaW5kZXggMDcxYmIxYTQ3YmUwNzgwNDYwNDIwNWZlMjIwZDhhNzNkM2RlNjljOC4uMmE3
MTcyY2U3NzI0YTFmZmE4ODQzOTA1ODczMmFiYTViZDU1NWM0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0ZUluZm9D
dXJsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBDZXJ0aWZpY2F0ZUluZm8gQ2VydGlmaWNhdGVJbmZv
Ojppc29sYXRlZENvcHkoKSBjb25zdAogCiBTdHJpbmcgQ2VydGlmaWNhdGVJbmZvOjp2ZXJpZmlj
YXRpb25FcnJvckRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nIHsgWDUw
OV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikgfTsKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKG1f
dmVyaWZpY2F0aW9uRXJyb3IpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvOjpDZXJ0aWZpY2F0ZSBD
ZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0ZShjb25zdCB1aW50OF90KiBidWZmZXIsIHNp
emVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5jcHAKaW5kZXggM2U1ZDZmMWM5MGY2MThlZmQxZTVjYWQxMGQ0YTA2YWVl
NTk5NjNkYi4uN2RlODZjMDhlMzQ5NmRmMzBmZTE0MDZiOGNiMzJkZmZlMjBjZWNmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQu
Y3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQ3VybEhhbmRsZTo6fkN1cmxIYW5kbGUoKQogCiBjb25z
dCBTdHJpbmcgQ3VybEhhbmRsZTo6ZXJyb3JEZXNjcmlwdGlvbihDVVJMY29kZSBlcnJvckNvZGUp
CiB7Ci0gICAgcmV0dXJuIFN0cmluZyhjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2RlKSk7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShjdXJsX2Vhc3lfc3RyZXJyb3IoZXJyb3JDb2Rl
KSk7CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlU1NMRm9ySG9zdChjb25zdCBTdHJpbmcm
IGhvc3QpCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDdXJsSGFuZGxlOjphZGRFeHRyYU5ldHdv
cmtMb2FkTWV0cmljcyhOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmkKICAgICBh
ZGRpdGlvbmFsTWV0cmljcy0+cmVzcG9uc2VIZWFkZXJCeXRlc1JlY2VpdmVkID0gcmVzcG9uc2VI
ZWFkZXJTaXplOwogCiAgICAgaWYgKGlwKSB7Ci0gICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5y
ZW1vdGVBZGRyZXNzID0gU3RyaW5nKGlwKTsKKyAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJl
bW90ZUFkZHJlc3MgPSBTdHJpbmc6OmZyb21MYXRpbjEoaXApOwogICAgICAgICBpZiAocG9ydCkK
ICAgICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZW1vdGVBZGRyZXNzLmFwcGVuZCgiOiIg
KyBTdHJpbmc6Om51bWJlcihwb3J0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkN1cmwuY3BwCmluZGV4IDRmODlkOTczZWM5MTFhNWQ5MDlkZGQ3ZTJlYmE5N2E1ZDRmYmNiMGYu
LmEzYmU4YmU4MzI5MzIwYTU2ZmFlNDIwNWZhOWJhOWVjMzhlYzg1ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
dXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIFN0cmluZyBk
ZWZhdWx0Q29va2llSmFyUGF0aCgpCiAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChGaWxlU3lzdGVtOjpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3Rv
cnkoKSwgZGVmYXVsdEZpbGVOYW1lKTsKICNlbHNlCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0MTcKLSAgICByZXR1cm4gU3RyaW5nIHsg
ZGVmYXVsdEZpbGVOYW1lIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShkZWZhdWx0
RmlsZU5hbWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcAppbmRleCBkMzliNjViNDQwZThmMmJi
MTk1NGU2YzYwYTNlODkyM2IzZjQ2YWI2Li5kM2VlMDdjMWVhMjJjZWExNzhmMTdjMGVkYjM1MzAy
ZjYxMGVjMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvT3BlblNTTEhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCkBAIC0zNDAsMTIgKzM0MCwxMiBAQCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlU3VtbWFyeT4gY3JlYXRlU3VtbWFyeUluZm8oY29uc3Qg
VmVjdG9yPHVpbnQ4XwogCiBTdHJpbmcgdGxzVmVyc2lvbihjb25zdCBTU0wqIHNzbCkKIHsKLSAg
ICByZXR1cm4gU3RyaW5nIHsgU1NMX2dldF92ZXJzaW9uKHNzbCkgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKFNTTF9nZXRfdmVyc2lvbihzc2wpKTsKIH0KIAogU3RyaW5nIHRsc0Np
cGhlck5hbWUoY29uc3QgU1NMKiBzc2wpCiB7Ci0gICAgcmV0dXJuIFN0cmluZyB7IFNTTF9DSVBI
RVJfZ2V0X25hbWUoU1NMX2dldF9jdXJyZW50X2NpcGhlcihzc2wpKSB9OworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lw
aGVyKHNzbCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCmluZGV4IGVmODk2MjI0ZmEwN2Fh
NWZkYTFmYTgyYThiY2NmMWY2YWQ3NzMwNTcuLmQyZGUwZGQxZTlkZmMxMDVlMmM3N2NkZTllNzFh
MWJiNDcxODMzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGlj
IFN0cmluZyB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluSW50ZXJuYWwoY29uc3QgcHNsX2N0
eF90KiBwc2wsIGNvbnN0IGMKIHsKICAgICAvLyBwc2xfcmVnaXN0ZXJhYmxlX2RvbWFpbiByZXR1
cm5zIGEgcG9pbnRlciB0byBkb21haW4ncyBkYXRhIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gcHJp
dmF0ZSBkb21haW4KICAgICBpZiAoY29uc3QgY2hhciogdG9wUHJpdmF0ZURvbWFpbiA9IHBzbF9y
ZWdpc3RyYWJsZV9kb21haW4ocHNsLCBkb21haW4pKQotICAgICAgICByZXR1cm4gU3RyaW5nIHsg
dG9wUHJpdmF0ZURvbWFpbiB9OworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKHRv
cFByaXZhdGVEb21haW4pOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hy
b25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcAppbmRleCA1NzIwZTI0ZGY4YTAwYWZlN2E5YjE4ZDA0
YjIwMjQ0ZTU5MTFjMWNmLi43MTdlYmRkMWJjNjA5YTcxM2FmMTNkNTVhMDZlMGJiMDAxNjIwNTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hy
b25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvU3luY2hyb25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcApAQCAtNDQsNyArNDQs
NyBAQCBSZXNvdXJjZUVycm9yIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpwbGF0Zm9ybUJhZFJl
c3BvbnNlRXJyb3IoKQogewogICAgIGludCBlcnJvckNvZGUgPSAwOwogICAgIFVSTCBmYWlsaW5n
VVJMOwotICAgIFN0cmluZyBsb2NhbGl6ZWREZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25z
ZSIpOworICAgIFN0cmluZyBsb2NhbGl6ZWREZXNjcmlwdGlvbigiQmFkIFNlcnZlciBSZXNwb25z
ZSJfcyk7CiAKICAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigiQ1VSTCJfcywgZXJyb3JDb2RlLCBm
YWlsaW5nVVJMLCBsb2NhbGl6ZWREZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHAKaW5kZXggYThkMjM3MDY0OGQyNDY4ODEyY2U1YjZmOTUzOWFhYjA5NjJl
ODZiYy4uNmUwYTNkYzdhYzVhZGYyMmY1NTNmODExMTM2MzNhMTM1YWU5MjcxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4sIENvbXBsZXRpCiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29r
aWVfamFyX2FsbF9jb29raWVzKGNvb2tpZVN0b3JhZ2UoKSkpOwogICAgIGZvciAoYXV0byogaXRl
bSA9IGNvb2tpZXMuZ2V0KCk7IGl0ZW07IGl0ZW0gPSBnX3NsaXN0X25leHQoaXRlbSkpIHsKICAg
ICAgICAgR1VuaXF1ZVB0cjxTb3VwQ29va2llPiBjb29raWUoc3RhdGljX2Nhc3Q8U291cENvb2tp
ZSo+KGl0ZW0tPmRhdGEpKTsKLSAgICAgICAgaWYgKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNr
ZWRDcmVhdGVGcm9tSG9zdChTdHJpbmcgeyBzb3VwX2Nvb2tpZV9nZXRfZG9tYWluKGNvb2tpZS5n
ZXQoKSkgfSkgPT0gZG9tYWluKSB7CisgICAgICAgIGlmIChSZWdpc3RyYWJsZURvbWFpbjo6dW5j
aGVja2VkQ3JlYXRlRnJvbUhvc3QoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfY29va2llX2dldF9k
b21haW4oY29va2llLmdldCgpKSkpID09IGRvbWFpbikgewogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJv
clNvdXAuY3BwCmluZGV4IDM0YTU3ZTVjMmMyZWI2OTg5N2E1NzNhZTQwMzJiMjMxYjk5OTNjMWQu
LmNiYWJjMDE5MjYyNDBkMTE1NmYzODI2ODc2MDA0MDVkOWM3ZGFmNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JT
b3VwLmNwcApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dHJhbnNwb3J0RXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJM
LCBpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3RyaW5nJiByZWFzb25QaHJhc2UpCiB7Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VS
Uk9SX0RPTUFJTikgfSwgc3RhdHVzQ29kZSwgZmFpbGluZ1VSTCwgcmVhc29uUGhyYXNlKTsKKyAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJp
bmcoU09VUF9IVFRQX0VSUk9SX0RPTUFJTikpLCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFz
b25QaHJhc2UpOwogfQogCiBSZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6Omh0dHBFcnJvcihT
b3VwTWVzc2FnZSogbWVzc2FnZSwgR0Vycm9yKiBlcnJvcikKQEAgLTYxLDIyICs2MSwyMiBAQCBS
ZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OmF1dGhlbnRpY2F0aW9uRXJyb3IoU291cE1lc3Nh
Z2UqIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2UpOwogI2lmIFVTRShTT1VQMikKLSAg
ICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX0hU
VFBfRVJST1JfRE9NQUlOKSB9LCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKKyAgICByZXR1cm4gUmVz
b3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQ
X0VSUk9SX0RPTUFJTikpLCBtZXNzYWdlLT5zdGF0dXNfY29kZSwKICAgICAgICAgc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlLT5yZWFzb25fcGhyYXNlKSk7CiAjZWxzZQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0
cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikgfSwgc291cF9tZXNz
YWdlX2dldF9zdGF0dXMobWVzc2FnZSksCisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoU3RyaW5n
Ojpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKFNPVVBfU0VTU0lPTl9FUlJPUikpLCBzb3Vw
X21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKICAgICAgICAgc291cF9tZXNzYWdlX2dldF91
cmkobWVzc2FnZSksIFN0cmluZzo6ZnJvbVVURjgoc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhy
YXNlKG1lc3NhZ2UpKSk7CiAjZW5kaWYKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9y
OjpnZW5lcmljR0Vycm9yKGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgR0Vycm9yKiBlcnJvcikKIHsK
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJv
ci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgZmFpbGluZ1VSTCwgU3RyaW5nOjpmcm9tVVRGOChl
cnJvci0+bWVzc2FnZSkpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCBmYWls
aW5nVVJMLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgUmVzb3VyY2VFcnJvcjo6dGxzRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgUmVz
b3VyY2VFcnJvciByZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKEdfVExT
X0VSUk9SKSB9LCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
cihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoR19UTFNfRVJST1IpKSwgR19U
TFNfRVJST1JfQkFEX0NFUlRJRklDQVRFLCBmYWlsaW5nVVJMLCB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpKTsKICAgICByZXNvdXJjZUVycm9yLnNldFRMU0Vycm9ycyh0bHNFcnJvcnMpOwog
ICAgIHJlc291cmNlRXJyb3Iuc2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpOwogICAgIHJldHVy
biByZXNvdXJjZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDkzOTU4ZTI0ZGE2
MDVmM2U1YTQ3Y2Q2YzY1ZmFiZTc0YWNjY2VkZjEuLmZmNDQwNDAzODhhNTA4MmEyODAwZGY2MDll
NTk4NjlhYTAwMGRmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZQogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7
CiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9o
ZWFkZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUp
KQotICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3Ry
aW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5n
Ojpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUp
KTsKIH0KIAogdW5zaWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVy
SG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCAzMmUwMDI4NTU2OTQ2MzJhMDI3
NzQwOTE0NTQzZjc3MzU3NTcxZjBiLi5hM2M2ODA3YTg2NmMyMDY1OTg5NDFkOGNkNzZhZDFiYzdl
YjgyYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVz
b3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Us
IGNvbnN0IENTdHJpbmcmIHNuaWYKICAgICB9CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291
cF9tZXNzYWdlX2dldF9zdGF0dXMoc291cE1lc3NhZ2UpOwotICAgIHNldEhUVFBTdGF0dXNUZXh0
KFN0cmluZyB7IHNvdXBfbWVzc2FnZV9nZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkgfSk7
CisgICAgc2V0SFRUUFN0YXR1c1RleHQoU3RyaW5nOjpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9n
ZXRfcmVhc29uX3BocmFzZShzb3VwTWVzc2FnZSkpKTsKIAogICAgIG1fY2VydGlmaWNhdGUgPSBz
b3VwX21lc3NhZ2VfZ2V0X3Rsc19wZWVyX2NlcnRpZmljYXRlKHNvdXBNZXNzYWdlKTsKICAgICBt
X3Rsc0Vycm9ycyA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGVfZXJyb3Jz
KHNvdXBNZXNzYWdlKTsKQEAgLTY2LDkgKzY2LDkgQEAgUmVzb3VyY2VSZXNwb25zZTo6UmVzb3Vy
Y2VSZXNwb25zZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIHNuaWYK
ICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0g
c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShyZXNwb25zZUhlYWRlcnMsICJDb250ZW50LVR5
cGUiKTsKICAgICBpZiAoIXNuaWZmZWRDb250ZW50VHlwZS5pc051bGwoKSAmJiBtX2h0dHBTdGF0
dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCAmJiBzbmlmZmVkQ29udGVudFR5cGUg
IT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50VHlwZSA9IFN0cmluZyB7IHNuaWZmZWRD
b250ZW50VHlwZS5kYXRhKCkgfTsKKyAgICAgICAgY29udGVudFR5cGUgPSBTdHJpbmc6OmZyb21M
YXRpbjEoc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7CiAgICAgZWxzZQotICAgICAgICBjb250
ZW50VHlwZSA9IFN0cmluZyB7IG9mZmljaWFsVHlwZSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShvZmZpY2lhbFR5cGUpOwogICAgIHNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICBpZiAobV9taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJ
RUQpCiAgICAgICAgIHNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0
aChtX3VybC5wYXRoKCkudG9TdHJpbmcoKSkpOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFk
ZXJzKiBzb3VwSGVhZAogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwogICAgIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIHNvdXBIZWFkZXJzKTsKICAgICB3
aGlsZSAoc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRl
ck5hbWUsICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICBhZGRIVFRQSGVhZGVy
RmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEo
aGVhZGVyVmFsdWUpKTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxlSUNVLmNwcAppbmRleCBmMGQ0MWQ1M2VhNDBjZGY0NzBlNTBlNGFmNTFkNTkzZTQy
ZDY2YWI1Li40N2Q0Yzk5MjFlMzNkZDViNjY3NWExZDcxZjcyNDE2Yjk2MzRlMzgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODksNyArMTg5LDcg
QEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8U3RyaW5nPj4gY3JlYXRlRmFsbGJhY2tN
b250aExhYmVscygpCiB7CiAgICAgYXV0byBsYWJlbHMgPSBtYWtlVW5pcXVlPFZlY3RvcjxTdHJp
bmc+PigpOwogICAgIGxhYmVscy0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzdGQ6OnNpemUoV1RG
Ojptb250aEZ1bGxOYW1lKSk7Ci0gICAgZm9yIChhdXRvKiBtb250aE5hbWUgOiBXVEY6Om1vbnRo
RnVsbE5hbWUpCisgICAgZm9yIChhdXRvIG1vbnRoTmFtZSA6IFdURjo6bW9udGhGdWxsTmFtZSkK
ICAgICAgICAgbGFiZWxzLT51bmNoZWNrZWRBcHBlbmQobW9udGhOYW1lKTsKICAgICByZXR1cm4g
bGFiZWxzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2Nv
YS9Mb2NhbGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9j
YWxlQ29jb2EubW0KaW5kZXggZTYxODFmNDY0Nzg1NTQyNTliNjAyZWM4NDRjN2Q1NTVlMjBkY2I3
Yy4uM2U1NjM1Yzc0NWYyNDBmNmY1NDA3NGIzZDUxNGRkZjU2ZDcwMzgwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tCkBAIC0yMDcs
NyArMjA3LDcgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUNvY29hOjpzaG9ydE1vbnRo
TGFiZWxzKCkKICAgICB9CiAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnJlc2VydmVDYXBhY2l0eSgx
Mik7CiAgICAgZm9yIChhdXRvJiBuYW1lIDogV1RGOjptb250aE5hbWUpCi0gICAgICAgIG1fc2hv
cnRNb250aExhYmVscy51bmNoZWNrZWRBcHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKG5hbWUpKTsK
KyAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChuYW1lKTsKICAgICBy
ZXR1cm4gbV9zaG9ydE1vbnRoTGFiZWxzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCBhNDRlNDM2YjY1ZWMzMzRmZTc0ODhhZDNk
ZDdjZWNjODlhN2I0MDRmLi5lOWQxODI4OWQ5NmExNGQ1ZTIxYWNmMWEzYWIxZWJiM2IyNWM2MTZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAK
QEAgLTM5OCwxNiArMzk4LDE2IEBAIHZvaWQgTG9jYWxlV2luOjppbml0aWFsaXplTG9jYWxlRGF0
YSgpCiAgICAgRFdPUkQgZGlnaXRTdWJzdGl0dXRpb24gPSBEaWdpdFN1YnN0aXR1dGlvbjB0bzk7
CiAgICAgZ2V0TG9jYWxlSW5mbyhMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9OLCBkaWdpdFN1YnN0
aXR1dGlvbik7CiAgICAgaWYgKGRpZ2l0U3Vic3RpdHV0aW9uID09IERpZ2l0U3Vic3RpdHV0aW9u
MHRvOSkgewotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMCIpOwotICAgICAgICBzeW1ib2xzLmFw
cGVuZCgiMSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMiIpOwotICAgICAgICBzeW1ib2xz
LmFwcGVuZCgiMyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNCIpOwotICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiNSIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNiIpOwotICAgICAgICBz
eW1ib2xzLmFwcGVuZCgiNyIpOwotICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOCIpOwotICAgICAg
ICBzeW1ib2xzLmFwcGVuZCgiOSIpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMCJfcyk7Cisg
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIxIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjIi
X3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiMyJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCI0Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjUiX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiNiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3Il9zKTsKKyAgICAg
ICAgc3ltYm9scy5hcHBlbmQoIjgiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOSJfcyk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIGRpZ2l0cyA9IGdldExvY2FsZUluZm9TdHJp
bmcoTE9DQUxFX1NOQVRJVkVESUdJVFMpOwogICAgICAgICBBU1NFUlQoZGlnaXRzLmxlbmd0aCgp
ID49IDEwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggNDA5MzUzN2RhNTU3OWRiNTQzMjZjYzg4YjU0ZTRhYjE3
YTJlMjJlMy4uZWZiNGM1MWY2NjdlMjAzMGIwZGQxMTliNDg1NDJmNTBkNjYwZWRlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dp
bi5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBTdHJpbmcgZ2V0VVJMKElEYXRhT2JqZWN0KiBkYXRh
T2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYQogICAgIH0g
ZWxzZSBpZiAoU1VDQ0VFREVEKGRhdGFPYmplY3QtPkdldERhdGEodXJsRm9ybWF0KCksICZzdG9y
ZSkpKSB7CiAgICAgICAgIC8vIFVSTCB1c2luZyBBU0NJSQogICAgICAgICBjaGFyKiBkYXRhID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwotICAgICAgICB1
cmwgPSBleHRyYWN0VVJMKFN0cmluZyhkYXRhKSwgdGl0bGUpOworICAgICAgICB1cmwgPSBleHRy
YWN0VVJMKFN0cmluZzo6ZnJvbUxhdGluMShkYXRhKSwgdGl0bGUpOwogICAgICAgICBHbG9iYWxV
bmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAgICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsK
ICAgICB9CkBAIC00NzUsNyArNDc1LDcgQEAgU3RyaW5nIGdldFVSTChJRGF0YU9iamVjdCogZGF0
YU9iamVjdCwgRHJhZ0RhdGE6OkZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmEKICAgICAg
ICAgICAgIC8vIGZpbGVuYW1lIHVzaW5nIGFzY2lpCiAgICAgICAgICAgICBjaGFyKiBkYXRhID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwogICAgICAgICAg
ICAgaWYgKGRhdGEgJiYgZGF0YVswXSAmJiAoUGF0aEZpbGVFeGlzdHNBKGRhdGEpIHx8IFBhdGhJ
c1VOQ0EoZGF0YSkpKSB7Ci0gICAgICAgICAgICAgICAgdXJsID0gVVJMOjpmaWxlVVJMV2l0aEZp
bGVTeXN0ZW1QYXRoKFN0cmluZyhkYXRhKSkuZmlsZVN5c3RlbVBhdGgoKTsKKyAgICAgICAgICAg
ICAgICB1cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nOjpmcm9tTGF0
aW4xKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgpOwogICAgICAgICAgICAgICAgIGlmICh0aXRsZSkK
ICAgICAgICAgICAgICAgICAgICAgKnRpdGxlID0gdXJsOwogICAgICAgICAgICAgfQpAQCAtNTI3
LDcgKzUyNyw3IEBAIFN0cmluZyBnZXRQbGFpblRleHQoSURhdGFPYmplY3QqIGRhdGFPYmplY3Qp
CiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YShwbGFpblRleHRG
b3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gQVNDSUkgdGV4dAogICAgICAgICBjaGFy
KiBkYXRhID0gc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2JhbExvY2soc3RvcmUuaEdsb2JhbCkpOwot
ICAgICAgICB0ZXh0ID0gU3RyaW5nKGRhdGEpOworICAgICAgICB0ZXh0ID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGRhdGEpOwogICAgICAgICBHbG9iYWxVbmxvY2soc3RvcmUuaEdsb2JhbCk7CiAgICAg
ICAgIFJlbGVhc2VTdGdNZWRpdW0oJnN0b3JlKTsKICAgICB9IGVsc2UgewpAQCAtNjEzLDcgKzYx
Myw3IEBAIGJvb2wgY29udGFpbnNGaWxlbmFtZXMoY29uc3QgRHJhZ0RhdGFNYXAqKQogUmVmPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50RnJvbUNGSFRNTChEb2N1bWVudCogZG9jLCBjb25zdCBT
dHJpbmcmIGNmaHRtbCkKIHsKICAgICAvLyBvYnRhaW4gYmFzZVVSTCBpZiBwcmVzZW50Ci0gICAg
U3RyaW5nIHNyY1VSTFN0cigic291cmNlVVJMOiIpOworICAgIFN0cmluZyBzcmNVUkxTdHIoInNv
dXJjZVVSTDoiX3MpOwogICAgIFN0cmluZyBzcmNVUkw7CiAgICAgdW5zaWduZWQgbGluZVN0YXJ0
ID0gY2ZodG1sLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzcmNVUkxTdHIpOwogICAgIGlmIChsaW5l
U3RhcnQgIT0gLTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9H
RElPYmplY3RDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmpl
Y3RDb3VudGVyLmNwcAppbmRleCBiNzY0OTFkNzY2ODc1OTZmYTU0NmJkN2U4MGY1ZTE4YTRhMTc1
NWNiLi4wODAxMTVjZWUxN2U3YTM1NmE2MTU5NmRhMjZjNTUzYTMwOWY3NDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCkBAIC00Miw3
ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogR0RJT2JqZWN0Q291bnRlcjo6R0RJT2Jq
ZWN0Q291bnRlcihjb25zdCBjaGFyKiBpZGVudGlmaWVyKQogewotICAgIGluaXQoU3RyaW5nIHsg
aWRlbnRpZmllciB9KTsKKyAgICBpbml0KFN0cmluZzo6ZnJvbUxhdGluMShpZGVudGlmaWVyKSk7
CiB9CiAKIEdESU9iamVjdENvdW50ZXI6OkdESU9iamVjdENvdW50ZXIoY29uc3QgU3RyaW5nJiBj
bGFzc05hbWUsIHZvaWQqIGluc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IDY2ODVlZDk5MzY0NjlmZDBhNDNmYmUyNDEyYmJjMzhi
Y2ZmOGQ1NmQuLjRjZTMyOGE4MzFjOTBiZjZiZDIyOGUxZjA3MjQwOGQ2NGIzM2E0NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTg0MCw3
ICs4NDAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4
dCwgUGxhaW5UZXh0VVJMUmVhZGluZ1BvbGljeSwgc3RkOgogICAgIGlmICg6OklzQ2xpcGJvYXJk
Rm9ybWF0QXZhaWxhYmxlKENGX1RFWFQpICYmIDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewog
ICAgICAgICBpZiAoSEFORExFIGNiRGF0YSA9IDo6R2V0Q2xpcGJvYXJkRGF0YShDRl9URVhUKSkg
ewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJlYXRzIHRoZSBjaGFyYWN0ZXJzIGFzIExh
dGluLTEsIG5vdCBVVEYtOCBvciBldmVuIFdpbmRvd3MgTGF0aW4tMS4gSXMgdGhhdCB0aGUgcmln
aHQgZW5jb2Rpbmc/Ci0gICAgICAgICAgICB0ZXh0LnRleHQgPSBTdHJpbmcgeyBzdGF0aWNfY2Fz
dDxjaGFyKj4oR2xvYmFsTG9jayhjYkRhdGEpKSB9OworICAgICAgICAgICAgdGV4dC50ZXh0ID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkp
KTsKICAgICAgICAgICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgOjpDbG9z
ZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtODg4LDcgKzg4OCw3IEBAIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1l
JiBmcmFtZSwgY29uc3QgU2ltcGxlCiAgICAgICAgICAgICBIQU5ETEUgY2JEYXRhID0gOjpHZXRD
bGlwYm9hcmREYXRhKENGX1RFWFQpOwogICAgICAgICAgICAgaWYgKGNiRGF0YSkgewogICAgICAg
ICAgICAgICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNi
RGF0YSkpOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoYnVmZmVyKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHN0ciA9IFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogICAgICAgICAgICAg
ICAgIEdsb2JhbFVubG9jayhjYkRhdGEpOwogICAgICAgICAgICAgICAgIDo6Q2xvc2VDbGlwYm9h
cmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250
ZXh0LCBzdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtl
eUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2Vu
ZXJhdG9yV2luLmNwcAppbmRleCA3NjkxNGUzNDM0YTU2MDEyMjA0YWQ0MWMxODBlZjdiYjc1ZGE3
MTk1Li4yMmU3OWU3YmFlNmI1Mzc3MDYzMjUzNjJhMDVhZTY0YzdkODg1YzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcApAQCAt
MzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIGdldFN1cHBvcnRlZEtleVNp
emVzKFZlY3RvcjxTdHJpbmc+JiB2KQogewogICAgIC8vIEZJWE1FOiBTdHJpbmdzIHNob3VsZCBi
ZSBsb2NhbGl6YWJsZS4KLSAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIpOworICAgIHYuYXBwZW5k
KCJIaWdoIEdyYWRlIl9zKTsKIH0KIAogU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IFVS
TCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL09w
ZW5YUlV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRp
bHMuaAppbmRleCA1NjM3MmJiMzU2ZWMzZWMzMmQxYTAxYjNjMGZkODkyZDIyY2FhOWQyLi4zMTNj
MzJhOTM2ZDkxMmZkNjgzOWM0MDc0N2QyMzg2YjZiNTBiMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS94ci9vcGVueHIvT3BlblhSVXRpbHMuaApAQCAtNjAsNyArNjAsNyBAQCBp
bmxpbmUgU3RyaW5nIHJlc3VsdFRvU3RyaW5nKFhyUmVzdWx0IHZhbHVlLCBYckluc3RhbmNlIGlu
c3RhbmNlKQogICAgIGNoYXIgYnVmZmVyW1hSX01BWF9SRVNVTFRfU1RSSU5HX1NJWkVdOwogICAg
IFhyUmVzdWx0IHJlc3VsdCA9IHhyUmVzdWx0VG9TdHJpbmcoaW5zdGFuY2UsIHZhbHVlLCBidWZm
ZXIpOwogICAgIGlmIChyZXN1bHQgPT0gWFJfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZyhidWZmZXIpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7CiAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIjx1bmtub3duICIsIGludCh2YWx1ZSksICI+Iik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uY3BwCmluZGV4IGQ3MWY0ZDEwNTdlZGJiNTNlZGFlMTY1YjJmZTJjZTAzYjFm
MGVlNWMuLmI5MjRkYWQzYjI3ZWVmMDRjMGYyYWEyMGY4ODA1ZjJkY2IwNjg3YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcApAQCAtMTg4LDExICsxODgsMTEgQEAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IFNl
c3Npb246OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdAogCiAgICAgc3dpdGNoIChjYXBh
YmlsaXRpZXMoKS5wYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vbmUiKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZygiTm9uZSJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpOb3Jt
YWw6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCIpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCJOb3JtYWwiX3MpOwogICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIkVhZ2VyIik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIkVhZ2Vy
Il9zKTsKICAgICB9CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2Vi
RHJpdmVyU2VydmljZS5jcHAKaW5kZXggNTkxODQ3MGI4NWNhYzg3ZmRiOWM3YTM1OTdjMjgxZDEw
YTU5YmVjMi4uODg2ZTc2MzQ0ODdhOTA2Y2M5NzY2NzBhNzc0ODQ0ODE5OThhZjJmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGludCBXZWJE
cml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2lmIFVTRShJTlNQRUNU
T1JfU09DS0VUX1NFUlZFUikKICAgICBTdHJpbmcgdGFyZ2V0U3RyaW5nOwogICAgIGlmIChjb25z
dCBjaGFyKiB0YXJnZXRFbnZWYXIgPSBnZXRlbnYoIldFQkRSSVZFUl9UQVJHRVRfQUREUiIpKQot
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyB0YXJnZXRFbnZWYXIgfTsKKyAgICAgICAg
dGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRhcmdldEVudlZhcik7CiAjZW5kaWYK
ICAgICBmb3IgKGludCBpID0gMSA7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hh
ciogYXJnID0gYXJndltpXTsKQEAgLTc1LDE5ICs3NSwxOSBAQCBpbnQgV2ViRHJpdmVyU2Vydmlj
ZTo6cnVuKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdl
U3RhdGVtZW50KGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nIHsgYXJndltp
XSB9OworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmd2W2ld
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHBvcnRTdHJMZW5ndGggPSBzdHJsZW4oIi0tcG9ydD0iKTsKICAgICAgICAg
aWYgKCFzdHJuY21wKGFyZywgIi0tcG9ydD0iLCBwb3J0U3RyTGVuZ3RoKSAmJiBwb3J0U3RyaW5n
LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nKGFyZyArIHBvcnRT
dHJMZW5ndGgpOworICAgICAgICAgICAgcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShh
cmcgKyBwb3J0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGhvc3RTdHJMZW5ndGggPSBzdHJsZW4oIi0t
aG9zdD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywgIi0taG9zdD0iLCBob3N0U3RyTGVu
Z3RoKSAmJiAhaG9zdCkgewotICAgICAgICAgICAgaG9zdCA9IFN0cmluZyhhcmcgKyBob3N0U3Ry
TGVuZ3RoKTsKKyAgICAgICAgICAgIGhvc3QgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJnICsgaG9z
dFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC05Nywx
MyArOTcsMTMgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChhcmd2WzBdKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nIHsgYXJndltpXSB9OworICAgICAgICAgICAgdGFyZ2V0
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGFyZ2V0U3Ry
TGVuZ3RoID0gc3RybGVuKCItLXRhcmdldD0iKTsKICAgICAgICAgaWYgKCFzdHJuY21wKGFyZywg
Ii0tdGFyZ2V0PSIsIHRhcmdldFN0ckxlbmd0aCkgJiYgdGFyZ2V0U3RyaW5nLmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcoYXJnICsgdGFyZ2V0U3RyTGVuZ3Ro
KTsKKyAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZzo6ZnJvbUxhdGluMShhcmcgKyB0
YXJnZXRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRp
ZgpAQCAtNTY2LDcgKzU2Niw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6ZmluZFNlc3Npb25P
ckNvbXBsZXRlV2l0aEVycm9yKEpTT046Ok9iamVjdCYgcGFyYW1ldGVycywKIAogICAgIGlmICgh
bV9zZXNzaW9uLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJl
c3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRl
ZCBiZWNhdXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iKSkpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZFNlc3Npb25JRCwgU3RyaW5nKCJzZXNzaW9uIGRlbGV0ZWQgYmVjYXVzZSBvZiBwYWdlIGNy
YXNoIG9yIGhhbmcuIl9zKSkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03
MTQsMTQgKzcxNCwxNCBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpw
cm9jZXNzQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICAvLyAyLjEu
IElmIHJlcXVpcmVkIGNhcGFiaWxpdGllcyBpcyB1bmRlZmluZWQsIHNldCB0aGUgdmFsdWUgdG8g
YW4gZW1wdHkgSlNPTiBPYmplY3QuCiAgICAgICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVzID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICB9IGVsc2UgaWYgKCEocmVxdWlyZWRDYXBhYmlsaXRp
ZXMgPSByZXF1aXJlZENhcGFiaWxpdGllc1ZhbHVlLT5hc09iamVjdCgpKSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9y
Q29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4g
Y2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5n
KCJhbHdheXNNYXRjaCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyAyLjIuIExldCByZXF1aXJlZCBjYXBhYmlsaXRp
ZXMgYmUgdGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGgg
YXJndW1lbnQgcmVxdWlyZWQgY2FwYWJpbGl0aWVzLgogICAgIHJlcXVpcmVkQ2FwYWJpbGl0aWVz
ID0gdmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpyZXF1aXJlZENhcGFiaWxpdGllcyk7CiAgICAgaWYg
KCFyZXF1aXJlZENhcGFiaWxpdGllcykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50
LCBTdHJpbmcoIkludmFsaWQgYWx3YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGFsd2F5c01hdGNoIGNhcGFi
aWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTczNiw3ICs3
MzYsNyBAQCBWZWN0b3I8Q2FwYWJpbGl0aWVzPiBXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNzQ2Fw
YWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgcAogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJp
bGl0aWVzTGlzdCA9IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNWYWx1ZS0+YXNBcnJheSgpOwogICAg
ICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0KSB7CiAgICAgICAgICAgICAvLyAz
LjIuIElmIGFsbCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMgaXMgbm90IGEgSlNPTiBMaXN0LCBy
ZXR1cm4gZXJyb3Igd2l0aCBlcnJvciBjb2RlIGludmFsaWQgYXJndW1lbnQuCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBp
biBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwg
U3RyaW5nKCJmaXJzdE1hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9zKSkpOwogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0KQEAgLTc0OSwxMyArNzQ5LDEz
IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmls
aXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0TGVuZ3RoOyArK2kpIHsKICAgICAgICAgYXV0byBm
aXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QtPmdldChp
KS0+YXNPYmplY3QoKTsKICAgICAgICAgaWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJp
bGl0aWVzIGZvdW5kIGluIGZpcnN0TWF0Y2giKSkpOworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFs
aWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGNhcGFiaWxpdGllcyBmb3VuZCBpbiBmaXJzdE1h
dGNoIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgICAgICAv
LyA1LjEuIExldCB2YWxpZGF0ZWQgY2FwYWJpbGl0aWVzIGJlIHRoZSByZXN1bHQgb2YgdHJ5aW5n
IHRvIHZhbGlkYXRlIGNhcGFiaWxpdGllcyB3aXRoIGFyZ3VtZW50IGZpcnN0IG1hdGNoIGNhcGFi
aWxpdGllcy4KICAgICAgICAgZmlyc3RNYXRjaENhcGFiaWxpdGllcyA9IHZhbGlkYXRlZENhcGFi
aWxpdGllcygqZmlyc3RNYXRjaENhcGFiaWxpdGllcyk7CiAgICAgICAgIGlmICghZmlyc3RNYXRj
aENhcGFiaWxpdGllcykgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3Ry
aW5nKCJJbnZhbGlkIGZpcnN0TWF0Y2ggY2FwYWJpbGl0aWVzIikpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBmaXJzdE1hdGNoIGNhcGFiaWxp
dGllcyJfcykpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtNzkx
LDcgKzc5MSw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZpY2U6OnByb2Nl
c3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgfQogCiAgICAgaWYgKG1h
dGNoZWRDYXBhYmlsaXRpZXNMaXN0LmlzRW1wdHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lv
bk5vdENyZWF0ZWQsIFN0cmluZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2gg
Y2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODAz
LDcgKzgwMyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvCiAgICAgLy8gwqc4LjEgTmV3IFNl
c3Npb24uCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jbmV3LXNlc3Np
b24KICAgICBpZiAobV9zZXNzaW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRl
ZCwgU3RyaW5nKCJNYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiKSkpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmluZygiTWF4aW11bSBudW1iZXIgb2YgYWN0
aXZlIHNlc3Npb25zIl9zKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04MTksNyAr
ODE5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
Y29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmIGNhcGFiaWxpdGllc0xpc3Qs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGNhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpT
ZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJpbGl0aWVzIikp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBt
YXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE5
MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQYXVzZUFjdGlvbihKU09OOjpPYmpl
Y3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzdGQ6Om9wCiAKICAgICBhdXRvIGR1cmF0
aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgaWYgKCFkdXJhdGlvbikg
ewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlvbiIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGluIHBhdXNlIGFjdGlv
biJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5MTMsNyArMTkxMyw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc051bGxBY3Rpb24oY29uc3Qg
U3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhCiB7CiAgICAgYXV0byBzdWJ0eXBlID0gYWN0aW9u
SXRlbS5nZXRTdHJpbmcoInR5cGUiX3MpOwogICAgIGlmIChzdWJ0eXBlICE9ICJwYXVzZSIpIHsK
LSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBu
dWxsIGFjdGlvbiBpcyBpbnZhbGlkIG9yIG1pc3NpbmciKTsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpbiBudWxsIGFjdGlvbiBpcyBpbnZhbGlk
IG9yIG1pc3NpbmciX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApA
QCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNz
S2V5QWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYgYWMKICAgICBlbHNlIGlm
IChzdWJ0eXBlID09ICJrZXlEb3duIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6
U3VidHlwZTo6S2V5RG93bjsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkgYWN0aW9uIGlzIGludmFsaWQiKTsKKyAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBrZXkg
YWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KIApAQCAtMTk1MCwxMiArMTk1MCwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+
IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBhYwogICAg
IGNhc2UgQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOiB7CiAgICAgICAgIGF1dG8ga2V5VmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ2YWx1ZSJfcyk7CiAgICAgICAgIGlmICgha2V5VmFsdWUp
IHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAndmFs
dWUnIGlzIG1pc3NpbmcgZm9yIGtleSB1cC9kb3duIGFjdGlvbiIpOworICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBrZXlWYWx1ZS0+YXNTdHJpbmcoKTsKICAg
ICAgICAgaWYgKGtleS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0
cmluZygiVGhlIHBhcmFtYXRlciAndmFsdWUnIGlzIGludmFsaWQgZm9yIGtleSB1cC9kb3duIGFj
dGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVy
ICd2YWx1ZScgaXMgaW52YWxpZCBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGNo
ZWNrIHNpbmdsZSB1bmljb2RlIGNvZGUgcG9pbnQuCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIGR1cmF0aW9uVmFsdWUgPSBhY3Rpb25J
dGVtLmdldFZhbHVlKCJkdXJhdGlvbiJfcykpIHsKICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHVu
c2lnbmVkVmFsdWUoKmR1cmF0aW9uVmFsdWUpOwogICAgICAgICBpZiAoIWR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9u
JyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdkdXJhdGlvbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGFjdGlvbi5kdXJh
dGlvbiA9IGR1cmF0aW9uLnZhbHVlKCk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVtLCBBY3Rp
b24mIGFjdGlvbiwgcwogICAgICAgICBpZiAoYXV0byBvcmlnaW5PYmplY3QgPSBvcmlnaW5WYWx1
ZS0+YXNPYmplY3QoKSkgewogICAgICAgICAgICAgYXV0byBlbGVtZW50SUQgPSBvcmlnaW5PYmpl
Y3QtPmdldFN0cmluZyhTZXNzaW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpKTsKICAgICAgICAg
ICAgIGlmICghZWxlbWVudElEKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nKCJUaGUgcGFyYW1ldGVyICdvcmlnaW4nIGlzIG5vdCBhIHZhbGlkIHdlYiBlbGVtZW50IG9i
amVjdCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQgd2ViIGVsZW1lbnQgb2JqZWN0
IGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IFBvaW50ZXJPcmlnaW4geyBQb2ludGVy
T3JpZ2luOjpUeXBlOjpFbGVtZW50LCBlbGVtZW50SUQgfTsKQEAgLTIwMTUsNyArMjAxNSw3IEBA
IHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFjdGlv
bkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgICAgICBlbHNlIGlmIChvcmlnaW4gPT0g
InBvaW50ZXIiKQogICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4gPSBQb2ludGVyT3JpZ2lu
IHsgUG9pbnRlck9yaWdpbjo6VHlwZTo6UG9pbnRlciwgc3RkOjpudWxsb3B0IH07CiAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBw
YXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxpZCBpbiBhY3Rpb24iKTsKKyAgICAgICAgICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgaW52YWxp
ZCBpbiBhY3Rpb24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjAyNSw3ICsyMDI1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz
c1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rp
b24sIHMKICAgICBpZiAoYXV0byB4VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ4Il9zKSkg
ewogICAgICAgICBhdXRvIHggPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeFZhbHVlLCBJTlRfTUlO
KTsKICAgICAgICAgaWYgKCF4KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3gnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd4JyBpcyBpbnZhbGlkIGZvciBh
Y3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IGFjdGlvbi54ID0geC52YWx1ZSgpOwpAQCAtMjAzNCw3ICsyMDM0LDcgQEAgc3RhdGljIGJvb2wg
cHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9u
JiBhY3Rpb24sIHMKICAgICBpZiAoYXV0byB5VmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJ5
Il9zKSkgewogICAgICAgICBhdXRvIHkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqeVZhbHVlLCBJ
TlRfTUlOKTsKICAgICAgICAgaWYgKCF5KSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBT
dHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd5JyBpcyBpbnZhbGlk
IGZvciBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAg
ICAgICAgIGFjdGlvbi55ID0geS52YWx1ZSgpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBQb2ludGVyUGFyYW0KICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJwb2ludGVyQ2FuY2Vs
IikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9IEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckNhbmNl
bDsKICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICd0eXBlJyBvZiBwb2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2YgcG9pbnRlciBhY3Rpb24g
aXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMDc0LDEyICsyMDc0LDEyIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vz
c1BvaW50ZXJBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgUG9pbnRlclBhcmFtCiAgICAgY2FzZSBB
Y3Rpb246OlN1YnR5cGU6OlBvaW50ZXJEb3duOiB7CiAgICAgICAgIGF1dG8gYnV0dG9uVmFsdWUg
PSBhY3Rpb25JdGVtLmdldFZhbHVlKCJidXR0b24iX3MpOwogICAgICAgICBpZiAoIWJ1dHRvblZh
bHVlKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiIpOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0b24nIGlzIG1p
c3NpbmcgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGJ1dHRvbiA9IHVuc2lnbmVk
VmFsdWUoKmJ1dHRvblZhbHVlKTsKICAgICAgICAgaWYgKCFidXR0b24pIHsKLSAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlk
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2J1dHRvbicgaXMgaW52YWxpZCBmb3IgcG9pbnRlciB1
cC9kb3duIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
ICAgICB9CiAgICAgICAgIGFjdGlvbi5idXR0b24gPSBhY3Rpb25Nb3VzZUJ1dHRvbihidXR0b24u
dmFsdWUoKSk7CkBAIC0yMTA5LDcgKzIxMDksNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rp
b24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAg
ICAgZWxzZSBpZiAoc3VidHlwZSA9PSAic2Nyb2xsIikKICAgICAgICAgYWN0aW9uU3VidHlwZSA9
IEFjdGlvbjo6U3VidHlwZTo6U2Nyb2xsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHdoZWVsIGFjdGlvbiBpcyBpbnZh
bGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlw
ZScgb2Ygd2hlZWwgYWN0aW9uIGlzIGludmFsaWQiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogICAgIH0KIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8QWN0aW9uPiBwcm9jZXNzV2hlZWxBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2Jq
ZWN0JgogICAgICAgICBpZiAoYXV0byBkZWx0YVhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUo
ImRlbHRhWCJfcykpIHsKICAgICAgICAgICAgIGF1dG8gZGVsdGFYID0gdmFsdWVBc051bWJlcklu
UmFuZ2UoKmRlbHRhWFZhbHVlLCBJTlRfTUlOKTsKICAgICAgICAgICAgIGlmICghZGVsdGFYKSB7
Ci0gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdk
ZWx0YVgnIGlzIGludmFsaWQgZm9yIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFYJyBpcyBpbnZhbGlkIGZvciBhY3Rp
b24iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBhY3Rpb24uZGVsdGFYID0gZGVsdGFYLnZhbHVlKCk7CkBAIC0yMTM2
LDcgKzIxMzYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFj
dGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRl
bHRhWVZhbHVlID0gYWN0aW9uSXRlbS5nZXRWYWx1ZSgiZGVsdGFZIl9zKSkgewogICAgICAgICAg
ICAgYXV0byBkZWx0YVkgPSB2YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFZVmFsdWUsIElOVF9N
SU4pOwogICAgICAgICAgICAgaWYgKCFkZWx0YVkpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIik7CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1h
dGVyICdkZWx0YVknIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5k
ZWx0YVkgPSBkZWx0YVkudmFsdWUoKTsKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFtZXRlcnMoSlNP
Tjo6T2JqZWN0JiBhCiAKICAgICBhdXRvIHBhcmFtZXRlcnNEYXRhID0gcGFyYW1ldGVyc0RhdGFW
YWx1ZS0+YXNPYmplY3QoKTsKICAgICBpZiAoIXBhcmFtZXRlcnNEYXRhKSB7Ci0gICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9u
IHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBub3QgYW4gb2JqZWN0Il9zKTsKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIxNzksNyArMjE3OSw3IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFBvaW50ZXJQYXJhbWV0ZXJzPiBwcm9jZXNzUG9pbnRlclBhcmFt
ZXRlcnMoSlNPTjo6T2JqZWN0JiBhCiAgICAgZWxzZSBpZiAocG9pbnRlclR5cGUgPT0gInRvdWNo
IikKICAgICAgICAgcGFyYW1ldGVycy5wb2ludGVyVHlwZSA9IFBvaW50ZXJUeXBlOjpUb3VjaDsK
ICAgICBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFyYW1ldGVycyBpcyBp
bnZhbGlkIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
cG9pbnRlclR5cGUnIGluIGFjdGlvbiBzZXF1ZW5jZSBwb2ludGVyIHBhcmFtZXRlcnMgaXMgaW52
YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTkw
LDcgKzIxOTAsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vz
c0lucHV0QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogewogICAgIGF1dG8gYWN0aW9u
U2VxdWVuY2UgPSBhY3Rpb25TZXF1ZW5jZVZhbHVlLmFzT2JqZWN0KCk7CiAgICAgaWYgKCFhY3Rp
b25TZXF1ZW5jZSkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBhY3Rpb24g
c2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjA1LDEzICsyMjA1LDEzIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxBY3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5j
ZShTZXNzaW9uJiBzZXNzaW9uCiAgICAgZWxzZSBpZiAodHlwZSA9PSAibm9uZSIpCiAgICAgICAg
IGlucHV0U291cmNlVHlwZSA9IElucHV0U291cmNlOjpUeXBlOjpOb25lOwogICAgIGVsc2Ugewot
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGlu
dmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNz
YWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBpcyBpbnZhbGlkIG9yIG1pc3Npbmcg
aW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKICAgICBhdXRvIGlkID0gYWN0aW9uU2VxdWVuY2UtPmdldFN0cmluZygiaWQiX3MpOwog
ICAgIGlmICghaWQpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1l
dGVyICdpZCcgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlk
IG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNlcXVlbmNlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMjcsMTggKzIyMjcsMTggQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKFNlc3Npb24m
IHNlc3Npb24KIAogICAgIGF1dG8mIGlucHV0U291cmNlID0gc2Vzc2lvbi5nZXRPckNyZWF0ZUlu
cHV0U291cmNlKGlkLCBpbnB1dFNvdXJjZVR5cGUsIHBvaW50ZXJUeXBlKTsKICAgICBpZiAoaW5w
dXRTb3VyY2UudHlwZSAhPSBpbnB1dFNvdXJjZVR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdl
ID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJj
ZSB0eXBlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVlbmNl
IHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgdHlwZSJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgaWYgKGlucHV0U291cmNlLnR5cGUgPT0gIElu
cHV0U291cmNlOjpUeXBlOjpQb2ludGVyICYmIGlucHV0U291cmNlLnBvaW50ZXJUeXBlICE9IHBv
aW50ZXJUeXBlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQWN0aW9uIHNlcXVl
bmNlIHBvaW50ZXIgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSBwb2ludGVyIHR5cGUi
KTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNlIHBvaW50ZXIgdHlwZSJfcyk7CiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgYXV0byBhY3Rpb25JdGVtcyA9
IGFjdGlvblNlcXVlbmNlLT5nZXRBcnJheSgiYWN0aW9ucyJfcyk7CiAgICAgaWYgKCFhY3Rpb25J
dGVtcykgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2Fj
dGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQgaW4gYWN0aW9uIHNlcXVlbmNlIik7Cisg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnYWN0aW9ucycgaXMg
aW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjI0Nyw3ICsyMjQ3LDcgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNl
KFNlc3Npb24mIHNlc3Npb24KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYWN0aW9uSXRl
bXNMZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGFjdGlvbkl0ZW0gPSBhY3Rpb25JdGVtcy0+
Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWFjdGlvbkl0ZW0pIHsKLSAgICAgICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBp
cyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFu
IGFjdGlvbiBpbiBhY3Rpb24gc2VxdWVuY2UgaXMgbm90IGFuIG9iamVjdCJfcyk7CiAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMoUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvCiAKICAgICBhdXRvIGFjdGlvbnNBcnJheSA9IHBh
cmFtZXRlcnMtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAgICBpZiAoIWFjdGlvbnNBcnJheSkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRS
ZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2FjdGlvbnMnIGlzIGludmFsaWQgb3Igbm90IHByZXNlbnQiKSkpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6
SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ2FjdGlvbnMnIGlzIGludmFs
aWQgb3Igbm90IHByZXNlbnQiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ3RrL1dlYkRyaXZlclNlcnZpY2VHdGsuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2VydmljZUd0ay5jcHAKaW5kZXggYTA5ZDA5NDFi
YTdmZDI5ZWJiZTMxZjczNmZjOWFkZmRlY2U4OTZiZS4uZGI5N2ZmMGZhMjkxMWFmMTkxYjkzNjcw
MTZmMWU1NjFlNzUyM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJp
dmVyU2VydmljZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vy
dmljZUd0ay5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0
Zm9ybUluaXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJp
bGl0aWVzKCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxp
dGllcy5wbGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBs
YXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5k
b3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAtMTEwLDcgKzEx
MCw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFiaWxpdHkoY29u
c3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBh
YmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewotICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKExJQkVYRUNESVIgIi93ZWJraXQyZ3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyAiL01pbmlCcm93c2VyIik7CisgICAgY2FwYWJp
bGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAiL3dlYmtpdDJndGstIiBX
RUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFi
aWxpdGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9u
Il9zIH07CiAgICAgY2FwYWJpbGl0aWVzLnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93aW4vV2ViRHJpdmVyU2VydmljZVdpbi5jcHAg
Yi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAppbmRleCA5MzY3
MTJmMmYxMzVlZjFjOTgzZGNhNzU0MWI4ZDQ3NGM0ZjE5NmJmLi5hYjIxNjcxY2NhZGEyNWU3Mzcx
ZjYzNjU4MmFmMzQzZGY3M2JiZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9X
ZWJEcml2ZXJTZXJ2aWNlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2
ZXJTZXJ2aWNlV2luLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6
OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1D
YXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAgY2Fw
YWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIik7CisgICAgY2FwYWJpbGl0aWVz
LnBsYXRmb3JtTmFtZSA9IFN0cmluZygid2luIl9zKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0V2lu
ZG93UmVjdCA9IHRydWU7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvd3BlL1dlYkRyaXZlclNlcnZpY2VXUEUuY3BwIGIvU291cmNlL1dl
YkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5jcHAKaW5kZXggNjU2YTY3NmFiMmNhMTJh
MDA1ZmFjMDkwYzdlNjZlMGU2MzY1OTNlYS4uZGM5MWZiM2NiNTI3ZmRlZjdlM2UyZDc0MDVhNWU2
ZDJlYjIwNDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2Vy
dmljZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQ
RS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybUlu
aXQoKQogQ2FwYWJpbGl0aWVzIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ2FwYWJpbGl0aWVz
KCkKIHsKICAgICBDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNhcGFiaWxpdGllcy5w
bGF0Zm9ybU5hbWUgPSBTdHJpbmcoImxpbnV4Iik7CisgICAgY2FwYWJpbGl0aWVzLnBsYXRmb3Jt
TmFtZSA9IFN0cmluZygibGludXgiX3MpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaW5kb3dSZWN0
ID0gZmFsc2U7CiAgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKIH0KQEAgLTEwNSw3ICsxMDUsNyBA
QCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtTWF0Y2hDYXBhYmlsaXR5KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFJlZjxKU09OOjpWYQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRm
b3JtUGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBtYXRjaGVkQ2FwYWJpbGl0
aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKLSAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiKTsKKyAgICBjYXBhYmlsaXRp
ZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZygiTWluaUJyb3dzZXIiX3MpOwogICAgIGNhcGFiaWxp
dGllcy5icm93c2VyQXJndW1lbnRzID0gVmVjdG9yPFN0cmluZz4geyAiLS1hdXRvbWF0aW9uIl9z
IH07CiAKICAgICBhdXRvIGJyb3dzZXJPcHRpb25zID0gbWF0Y2hlZENhcGFiaWxpdGllcy5nZXRP
YmplY3QoIndwZTpicm93c2VyT3B0aW9ucyJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggMWYw
YjdlNGU5OWVjZDMwZDg1ZWI2NTYyODhiNTYzZDQyMzkwY2Q3OC4uMzA5ZGFjMDc5ZGQyODdiODQx
YTgyMDE3M2I1NzRjNzU4ZTUwOWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtOTMxLDcgKzkz
MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVIVFRQUmVkaXJlY3Rpb24o
KQogI2lmIFVTRShTT1VQMikKICAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yOjp0cmFuc3Bv
cnRFcnJvcihtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBTT1VQX1NUQVRVU19UT09fTUFOWV9SRURJ
UkVDVFMsICJUb28gbWFueSByZWRpcmVjdHMiX3MpKTsKICNlbHNlCi0gICAgICAgIGRpZEZhaWwo
UmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJS
T1IpIH0sIFNPVVBfU0VTU0lPTl9FUlJPUl9UT09fTUFOWV9SRURJUkVDVFMsIG1fY3VycmVudFJl
cXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoIlRvbyBtYW55IHJlZGlyZWN0cyIpKSk7Cisg
ICAgICAgIGRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190
b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9SKSksIFNPVVBfU0VTU0lPTl9FUlJPUl9UT09fTUFO
WV9SRURJUkVDVFMsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoIlRv
byBtYW55IHJlZGlyZWN0cyIpKSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTEwMzcsNyArMTAzNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6cmVhZENhbGxiYWNr
KEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdBc3luY1Jlc3VsdCoKICAgICAgICAgaWYgKHRh
c2stPm1fc291cE1lc3NhZ2UpCiAgICAgICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJy
b3I6OmdlbmVyaWNHRXJyb3IodGFzay0+bV9jdXJyZW50UmVxdWVzdC51cmwoKSwgZXJyb3IuZ2V0
KCkpKTsKICAgICAgICAgZWxzZSBpZiAodGFzay0+bV9maWxlKQotICAgICAgICAgICAgdGFzay0+
ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5k
b21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgICAgIHRhc2stPmRpZEZhaWwo
UmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3It
PmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmlu
Zzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfSBlbHNlIGlmIChieXRlc1JlYWQg
PiAwKQpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRS
ZXF1ZXN0TmV4dFBhcnQoR1JlZlB0cjxHSW5wdXRTdHJlYW0+JiYgaW5wdXRTdHJlYW0KICAgICBB
U1NFUlQoIW1faW5wdXRTdHJlYW0pOwogICAgIG1faW5wdXRTdHJlYW0gPSBXVEZNb3ZlKGlucHV0
U3RyZWFtKTsKICAgICBhdXRvKiBoZWFkZXJzID0gc291cF9tdWx0aXBhcnRfaW5wdXRfc3RyZWFt
X2dldF9oZWFkZXJzKG1fbXVsdGlwYXJ0SW5wdXRTdHJlYW0uZ2V0KCkpOwotICAgIFN0cmluZyBj
b250ZW50VHlwZSB7IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRl
bnQtVHlwZSIpIH07CisgICAgYXV0byBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGluMShz
b3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50LVR5cGUiKSk7CiAg
ICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9maXJzdFJlcXVlc3QudXJsKCksIGV4
dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLAogICAgICAgICBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgoaGVhZGVycyksIGV4dHJhY3RDaGFyc2V0
RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgbV9yZXNwb25zZS51
cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKGhlYWRlcnMpOwpAQCAtMTI0OSw3ICsxMjQ5LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRHZXRIZWFkZXJzKCkKICAgICAgICAgY29u
c3QgY2hhciogaGVhZGVyTmFtZTsKICAgICAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7CiAg
ICAgICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVy
LCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgICAgIHJlcXVlc3RIZWFkZXJz
LnNldChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJWYWx1ZSkpOworICAgICAgICAg
ICAgcmVxdWVzdEhlYWRlcnMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShoZWFkZXJOYW1lKSwgU3Ry
aW5nOjpmcm9tTGF0aW4xKGhlYWRlclZhbHVlKSk7CiAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNz
LnJlcXVlc3RIZWFkZXJzID0gV1RGTW92ZShyZXF1ZXN0SGVhZGVycyk7CiAKICAgICAgICAgYWRk
aXRpb25hbE1ldHJpY3MucHJpb3JpdHkgPSB0b05ldHdvcmtMb2FkUHJpb3JpdHkoc291cF9tZXNz
YWdlX2dldF9wcmlvcml0eShtX3NvdXBNZXNzYWdlLmdldCgpKSk7CkBAIC0xNjkxLDcgKzE2OTEs
NyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEZpbGVJbmZvKEdGaWxlSW5mbyog
aW5mbykKICAgICAgICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZSgidGV4dC9odG1sIl9zKTsKICAg
ICAgICAgbV9yZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoLTEpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlwZSB7IGdfZmlsZV9pbmZvX2dldF9jb250ZW50
X3R5cGUoaW5mbykgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxh
dGluMShnX2ZpbGVfaW5mb19nZXRfY29udGVudF90eXBlKGluZm8pKTsKICAgICAgICAgbV9yZXNw
b25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBl
KSk7CiAgICAgICAgIG1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLnRvU3RyaW5nKCkpOwogICAgICAgICBpZiAobV9y
ZXNwb25zZS5taW1lVHlwZSgpLmlzRW1wdHkoKSkKQEAgLTE3MTksNyArMTcxOSw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6cmVhZEZpbGVDYWxsYmFjayhHRmlsZSogZmlsZSwgR0FzeW5j
UmVzdWx0KiByZXN1bHQsIE5lCiAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAg
IEdSZWZQdHI8R0lucHV0U3RyZWFtPiBpbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihHX0lOUFVUX1NU
UkVBTShnX2ZpbGVfcmVhZF9maW5pc2goZmlsZSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKSk7
CiAgICAgaWYgKGVycm9yKQotICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3Ry
aW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRh
c2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdl
KSkpOworICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nOjpmcm9tTGF0
aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJyb3ItPmNvZGUsIHRhc2st
Pm1fZmlyc3RSZXF1ZXN0LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkp
OwogICAgIGVsc2UKICAgICAgICAgdGFzay0+ZGlkUmVhZEZpbGUoV1RGTW92ZShpbnB1dFN0cmVh
bSkpOwogfQpAQCAtMTc0Myw3ICsxNzQzLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpl
bnVtZXJhdGVGaWxlQ2hpbGRyZW5DYWxsYmFjayhHRmlsZSogZmlsZSwgR0FzeW5jUmVzdWwKICAg
ICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR1JlZlB0cjxHRmlsZUVudW1lcmF0
b3I+IGVudW1lcmF0b3IgPSBhZG9wdEdSZWYoZ19maWxlX2VudW1lcmF0ZV9jaGlsZHJlbl9maW5p
c2goZmlsZSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAg
ICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmlu
ZyhlcnJvci0+ZG9tYWluKSB9LCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJs
KCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRp
ZEZhaWwoUmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmco
ZXJyb3ItPmRvbWFpbikpLCBlcnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCks
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0
YXNrLT5kaWRSZWFkRmlsZSh3ZWJraXREaXJlY3RvcnlJbnB1dFN0cmVhbU5ldyhXVEZNb3ZlKGVu
dW1lcmF0b3IpLCB0YXNrLT5tX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2Nr
ZXRUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuY3BwCmluZGV4IDk3ZjA5ODU0Y2Y1ZTNlMjhmZTAyZWJjZjkyMjFiMzVkYjJl
MDlhYjYuLjZlZWMzNzJmY2Y1NTYyMWQ0NTM1ODIyNDA1ZDQ2YzA0ZTNhZjAyMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ29ubmVj
dChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgZ19z
aWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQoKSwgImVycm9yIiwgcmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVFcnJvckNhbGxiYWNrKSwgdGhpcyk7CiAg
ICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQoKSwgImNsb3NlZCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRDbG9zZUNhbGxiYWNrKSwgdGhpcyk7CiAK
LSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChTdHJpbmcgeyBzb3VwX3dlYnNvY2tldF9jb25uZWN0
aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpIH0sIGFjY2VwdGVkRXh0ZW5zaW9u
cygpKTsKKyAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChTdHJpbmc6OmZyb21MYXRpbjEoc291cF93
ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSksIGFj
Y2VwdGVkRXh0ZW5zaW9ucygpKTsKIAogICAgIG1fY2hhbm5lbC5kaWRSZWNlaXZlSGFuZHNoYWtl
UmVzcG9uc2UobV9oYW5kc2hha2VNZXNzYWdlLmdldCgpKTsKICAgICBnX3NpZ25hbF9oYW5kbGVy
c19kaXNjb25uZWN0X2J5X2RhdGEobV9oYW5kc2hha2VNZXNzYWdlLmdldCgpLCB0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCmluZGV4IDhiZTVlNjY4
NjU5MGE3NjEzNzRkNTlhZDM4N2Q4NmJmYmFmYmIyNjguLmE3MDY1NDA1N2JjZjBjYzFjYWYxMTg5
ZTQ5MDBjMGRlYTczNDA1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5p
eC9Mb2dnaW5nVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBs
b2dMZXZlbFN0cmluZygpCiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIHJldHVybiBTdHJpbmcg
eyBnZXRlbnYoIldFQktJVF9ERUJVRyIpIH07CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGlu
MShnZXRlbnYoIldFQktJVF9ERUJVRyIpKTsKICNlbHNlCiAgICAgcmV0dXJuIFN0cmluZygpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVt
b3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5p
eC5jcHAKaW5kZXggZmU5Yjc4MDI2MDkzZTY4MmMxNjkxMzVhMGYwMDA3M2Y4NGNkODYzNi4uOTM0
NWE0N2QwOGRjOWY4NjhlZDNjMmM2NmI2ZjNkOThmYTQ5YmM2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgPHd0Zi9TYWZlU3RyZXJyb3IuaD4KICNpbmNsdWRlIDx3dGYvVW5pU3RkRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiAjaWYgSEFWRShMSU5VWF9NRU1GRF9IKQpAQCAtMTUzLDcgKzE1NCw3IEBAIHN0YXRp
YyBpbnQgY3JlYXRlU2hhcmVkTWVtb3J5KCkKICNlbHNlCiAgICAgQ1N0cmluZyB0ZW1wTmFtZTsK
ICAgICBmb3IgKGludCB0cmllcyA9IDA7IGZpbGVEZXNjcmlwdG9yID09IC0xICYmIHRyaWVzIDwg
MTA7ICsrdHJpZXMpIHsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBTdHJpbmcoIi9XSzJTaGFyZWRN
ZW1vcnkuIikgKyBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5k
b21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjAp
KSk7CisgICAgICAgIGF1dG8gbmFtZSA9IG1ha2VTdHJpbmcoIi9XSzJTaGFyZWRNZW1vcnkuIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFdURjo6cmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmlj
X2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpOwogICAgICAgICB0ZW1wTmFtZSA9IG5h
bWUudXRmOCgpOwogCiAgICAgICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggZmYyMjFjYTQ5YTNjNjI4ZDBkYmY2
YjA5MmRiMjdiMDQ4YWE1YjMxYy4uYTE1ZDc1NjBkNDY1ODNjNWMwM2FhNjBhNjAwM2FjYzhkNjQ1
OWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJ
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJ
UmVxdWVzdC5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIHdlYmtpdF91cmlfcmVxdWVzdF9z
ZXRfdXJpKFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHVyaSkKICAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbCh1cmkpOwogCi0gICAgVVJMIHVybCB7IFN0cmluZyB7IHVyaSB9IH07Cisg
ICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMSh1cmkpIH07CiAgICAgaWYgKHVybCA9PSBy
ZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3QudXJsKCkpCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxp
bnV4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAKaW5kZXggN2YwMGVmZmRlZDg3YWQ4NTYwMjg2N2FkMDY4Y2RmZGZiZmE5NGM1OC4uZDBi
NDkwMjYwYTA0NWFmOTRhZjEyZjQwOTRlNzQ4OGNmZTYxN2E0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCkBAIC02Niw3
ICs2Niw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIG5leHRUb2tlbihGSUxFKiBmaWxlKQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOworICAgIHJldHVybiBT
dHJpbmc6OmZyb21MYXRpbjEoYnVmZmVyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGFwcGVu
ZEtleVZhbHVlUGFpcihXZWJNZW1vcnlTdGF0aXN0aWNzJiBzdGF0cywgY29uc3QgU3RyaW5nJiBr
ZXksIHNpemVfdCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9X
ZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFj
dG9yeS5jcHAKaW5kZXggMGZiMzA3YzY2NDdmZjg2ZWIxYzA2OGJjMDZjNmIxYTBiMzJjNTc3MC4u
OTBkZjA5M2E0OWMwOWRjNjcwZGZlYTU1MDc3Yzc3ZDg4OWRkMWMxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTIzNCw5OCArMjM0LDk4IEBA
IHN0YXRpYyBTdHJpbmcga2V5SWRlbnRpZmllckZyb21FdmVudChXUEFSQU0gd3BhcmFtLCBXZWJF
dmVudDo6VHlwZSB0eXBlKQogICAgIHVuc2lnbmVkIHNob3J0IGtleUNvZGUgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBzaG9ydD4od3BhcmFtKTsKICAgICBzd2l0Y2ggKGtleUNvZGUpIHsKICAgICBj
YXNlIFZLX01FTlU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOworICAgICAgICByZXR1
cm4gIkFsdCJfczsKICAgICBjYXNlIFZLX0NPTlRST0w6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkNvbnRyb2wiKTsKKyAgICAgICAgcmV0dXJuICJDb250cm9sIl9zOwogICAgIGNhc2UgVktfU0hJ
RlQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlNoaWZ0Iik7CisgICAgICAgIHJldHVybiAiU2hp
ZnQiX3M7CiAgICAgY2FzZSBWS19DQVBJVEFMOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBz
TG9jayIpOworICAgICAgICByZXR1cm4gIkNhcHNMb2NrIl9zOwogICAgIGNhc2UgVktfTFdJTjoK
ICAgICBjYXNlIFZLX1JXSU46Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIldpbiIpOworICAgICAg
ICByZXR1cm4gIldpbiJfczsKICAgICBjYXNlIFZLX0NMRUFSOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJDbGVhciIpOworICAgICAgICByZXR1cm4gIkNsZWFyIl9zOwogICAgIGNhc2UgVktfRE9X
TjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRG93biIpOworICAgICAgICByZXR1cm4gIkRvd24i
X3M7CiAgICAgY2FzZSBWS19FTkQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkVuZCIpOworICAg
ICAgICByZXR1cm4gIkVuZCJfczsKICAgICBjYXNlIFZLX1JFVFVSTjoKLSAgICAgICAgcmV0dXJu
IFN0cmluZygiRW50ZXIiKTsKKyAgICAgICAgcmV0dXJuICJFbnRlciJfczsKICAgICBjYXNlIFZL
X0VYRUNVVEU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkV4ZWN1dGUiKTsKKyAgICAgICAgcmV0
dXJuICJFeGVjdXRlIl9zOwogICAgIGNhc2UgVktfRjE6Ci0gICAgICAgIHJldHVybiBTdHJpbmco
IkYxIik7CisgICAgICAgIHJldHVybiAiRjEiX3M7CiAgICAgY2FzZSBWS19GMjoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiRjIiKTsKKyAgICAgICAgcmV0dXJuICJGMiJfczsKICAgICBjYXNlIFZL
X0YzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMyIpOworICAgICAgICByZXR1cm4gIkYzIl9z
OwogICAgIGNhc2UgVktfRjQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY0Iik7CisgICAgICAg
IHJldHVybiAiRjQiX3M7CiAgICAgY2FzZSBWS19GNToKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjUiKTsKKyAgICAgICAgcmV0dXJuICJGNSJfczsKICAgICBjYXNlIFZLX0Y2OgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJGNiIpOworICAgICAgICByZXR1cm4gIkY2Il9zOwogICAgIGNhc2UgVktf
Rjc6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY3Iik7CisgICAgICAgIHJldHVybiAiRjciX3M7
CiAgICAgY2FzZSBWS19GODoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjgiKTsKKyAgICAgICAg
cmV0dXJuICJGOCJfczsKICAgICBjYXNlIFZLX0Y5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJG
OSIpOworICAgICAgICByZXR1cm4gIkY5Il9zOwogICAgIGNhc2UgVktfRjEwOgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJGMTEiKTsKKyAgICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAgY2FzZSBW
S19GMTI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxMiIpOworICAgICAgICByZXR1cm4gIkYx
MiJfczsKICAgICBjYXNlIFZLX0YxMzoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEzIik7Cisg
ICAgICAgIHJldHVybiAiRjEzIl9zOwogICAgIGNhc2UgVktfRjE0OgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJGMTQiKTsKKyAgICAgICAgcmV0dXJuICJGMTQiX3M7CiAgICAgY2FzZSBWS19GMTU6
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxNSIpOworICAgICAgICByZXR1cm4gIkYxNSJfczsK
ICAgICBjYXNlIFZLX0YxNjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjE2Iik7CisgICAgICAg
IHJldHVybiAiRjE2Il9zOwogICAgIGNhc2UgVktfRjE3OgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJGMTciKTsKKyAgICAgICAgcmV0dXJuICJGMTciX3M7CiAgICAgY2FzZSBWS19GMTg6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIkYxOCIpOworICAgICAgICByZXR1cm4gIkYxOCJfczsKICAgICBj
YXNlIFZLX0YxOToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjE5Iik7CisgICAgICAgIHJldHVy
biAiRjE5Il9zOwogICAgIGNhc2UgVktfRjIwOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjAi
KTsKKyAgICAgICAgcmV0dXJuICJGMjAiX3M7CiAgICAgY2FzZSBWS19GMjE6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIkYyMSIpOworICAgICAgICByZXR1cm4gIkYyMSJfczsKICAgICBjYXNlIFZL
X0YyMjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjIyIik7CisgICAgICAgIHJldHVybiAiRjIy
Il9zOwogICAgIGNhc2UgVktfRjIzOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjMiKTsKKyAg
ICAgICAgcmV0dXJuICJGMjMiX3M7CiAgICAgY2FzZSBWS19GMjQ6Ci0gICAgICAgIHJldHVybiBT
dHJpbmcoIkYyNCIpOworICAgICAgICByZXR1cm4gIkYyNCJfczsKICAgICBjYXNlIFZLX0hFTFA6
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkhlbHAiKTsKKyAgICAgICAgcmV0dXJuICJIZWxwIl9z
OwogICAgIGNhc2UgVktfSE9NRToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiSG9tZSIpOworICAg
ICAgICByZXR1cm4gIkhvbWUiX3M7CiAgICAgY2FzZSBWS19JTlNFUlQ6Ci0gICAgICAgIHJldHVy
biBTdHJpbmcoIkluc2VydCIpOworICAgICAgICByZXR1cm4gIkluc2VydCJfczsKICAgICBjYXNl
IFZLX0xFRlQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkxlZnQiKTsKKyAgICAgICAgcmV0dXJu
ICJMZWZ0Il9zOwogICAgIGNhc2UgVktfTkVYVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUGFn
ZURvd24iKTsKKyAgICAgICAgcmV0dXJuICJQYWdlRG93biJfczsKICAgICBjYXNlIFZLX1BSSU9S
OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJQYWdlVXAiKTsKKyAgICAgICAgcmV0dXJuICJQYWdl
VXAiX3M7CiAgICAgY2FzZSBWS19QQVVTRToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiUGF1c2Ui
KTsKKyAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKICAgICBjYXNlIFZLX1NOQVBTSE9UOgotICAg
ICAgICByZXR1cm4gU3RyaW5nKCJQcmludFNjcmVlbiIpOworICAgICAgICByZXR1cm4gIlByaW50
U2NyZWVuIl9zOwogICAgIGNhc2UgVktfUklHSFQ6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlJp
Z2h0Iik7CisgICAgICAgIHJldHVybiAiUmlnaHQiX3M7CiAgICAgY2FzZSBWS19TQ1JPTEw6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIlNjcm9sbCIpOworICAgICAgICByZXR1cm4gIlNjcm9sbCJf
czsKICAgICBjYXNlIFZLX1NFTEVDVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiU2VsZWN0Iik7
CisgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOwogICAgIGNhc2UgVktfVVA6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIlVwIik7CisgICAgICAgIHJldHVybiAiVXAiX3M7CiAgICAgY2FzZSBWS19E
RUxFVEU6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlUrMDA3RiIpOyAvLyBTdGFuZGFyZCBzYXlz
IHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgorICAgICAgICByZXR1cm4gIlUrMDA3RiJfczsgLy8g
U3RhbmRhcmQgc2F5cyB0aGF0IERFTCBiZWNvbWVzIFUrMDA3Ri4KICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZygiVSsiLCBoZXgodG9BU0NJSVVwcGVyKGtleUNvZGUpLCA0
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggNzUzMmZmNWJlZGJiZDQ4MzRlZTdj
MTExY2ZlZGI5YTdhODRjNjA4MS4uN2U0MjdlMDA3NzdkMDI3ZDk5MjljNGU5ZTQ0NDgzN2YzYzY5
MTY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFdlYktpdFByb3Rv
Y29sSGFuZGxlcjo6V2ViS2l0UHJvdG9jb2xIYW5kbGVyKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQpCiAKIHZvaWQgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpoYW5kbGVSZXF1ZXN0KFdlYktpdFVS
SVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgVVJMIHJlcXVlc3RVUkwgPSBVUkwoU3Ry
aW5nIHsgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpIH0pOworICAg
IFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpKTsKICAgICBpZiAocmVxdWVzdFVSTC5ob3N0KCkg
PT0gImdwdSIpIHsKICAgICAgICAgaGFuZGxlR1BVKHJlcXVlc3QpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGNmMjAxN2FhZWRjNWY3YTQ4NjE3OWIxYzM4ZDA0
M2NlZjIzYjIzNDQuLmM0MTdiN2ViOTY0MWY1YzBiYjhiNjJhMTlhMTBkMzIxMWUxZThjOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVt
ZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0VVJJU2NoZW1lUmVxdWVzdFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFt
LCBHQXN5bmMKIAogICAgIFdlYktpdFVSSVNjaGVtZVJlc3BvbnNlKiByZXNwID0gcHJpdi0+cmVz
cG9uc2UuZ2V0KCk7CiAgICAgaWYgKCFwcml2LT5ieXRlc1JlYWQpIHsKLSAgICAgICAgU3RyaW5n
IGNvbnRlbnRUeXBlIHsgd2ViS2l0VVJJU2NoZW1lUmVzcG9uc2VHZXRDb250ZW50VHlwZShyZXNw
KS5kYXRhKCkgfTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IFN0cmluZzo6ZnJvbUxhdGlu
MSh3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENvbnRlbnRUeXBlKHJlc3ApLmRhdGEoKSk7CiAg
ICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocHJpdi0+dGFzay0+cmVxdWVzdCgpLnVy
bCgpLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSwgd2ViS2l0VVJJ
U2NoZW1lUmVzcG9uc2VHZXRTdHJlYW1MZW5ndGgocmVzcCksIGVtcHR5U3RyaW5nKCkpOwogICAg
ICAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlh
VHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAgICAgICAgIGNvbnN0IENTdHJpbmcmIHN0
YXR1c01lc3NhZ2UgPSB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0YXR1c01lc3NhZ2UocmVz
cCk7CkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJU2NoZW1lUmVxdWVz
dFJlYWRDYWxsYmFjayhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCBHQXN5bmMKICAgICAgICAg
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSh3ZWJLaXRVUklTY2hlbWVS
ZXNwb25zZUdldFN0YXR1c0NvZGUocmVzcCkpOwotICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRU
UFN0YXR1c1RleHQoU3RyaW5nIHsgc3RhdHVzTWVzc2FnZS5kYXRhKCkgfSk7CisgICAgICAgICAg
ICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEoc3RhdHVzTWVz
c2FnZS5kYXRhKCkpKTsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzcG9uc2UubWltZVR5cGUo
KS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJl
Z2lzdHJ5OjptaW1lVHlwZUZvclBhdGgocmVzcG9uc2UudXJsKCkucGF0aCgpLnRvU3RyaW5nKCkp
KTsKQEAgLTMxMSw2ICszMTEsNiBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdFcgogCiAgICAgV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogICAgIHBy
aXYtPnJlc3BvbnNlID0gbnVsbHB0cjsKLSAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
U3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgdG9XZWJDb3JlRXJy
b3IoZXJyb3ItPmNvZGUpLCBwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIFN0cmluZzo6ZnJv
bVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
U3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgdG9X
ZWJDb3JlRXJyb3IoZXJyb3ItPmNvZGUpLCBwcml2LT50YXNrLT5yZXF1ZXN0KCkudXJsKCksIFN0
cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKICAgICBwcml2LT50YXNrLT5kaWRDb21w
bGV0ZShyZXNvdXJjZUVycm9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmNwcAppbmRleCBhYzJhYTlmMzU2ZWEwMDUwY2RkYWQwZjNhMjcyM2MxMjgzMGQy
ZDA5Li4xNWIzNzMwYWExYTYwZGExNTcyZDA2YWMxZDU4ZWEyMGE3ZWI4ZDI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclBy
b3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OnVzZXJDb250ZW50TWFuYWdl
ckRlc3Ryb3llZChSZW1vdGVJbnNwZWN0b3IKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXI6OmhhbmRsZVJlcXVlc3QoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkK
IHsKLSAgICBVUkwgcmVxdWVzdFVSTCA9IFVSTChTdHJpbmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9y
ZXF1ZXN0X2dldF91cmkocmVxdWVzdCkgfSk7CisgICAgVVJMIHJlcXVlc3RVUkwgPSBVUkwoU3Ry
aW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0
KSkpOwogICAgIGlmICghcmVxdWVzdFVSTC5wb3J0KCkpIHsKICAgICAgICAgR1VuaXF1ZVB0cjxH
RXJyb3I+IGVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoV0VCS0lUX1BPTElDWV9FUlJPUiwgV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkksICJDYW5ub3Qgc2hvdyBpbnNwZWN0b3Ig
VVJMOiBubyBwb3J0IHByb3ZpZGVkIikpOwogICAgICAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2ZpbmlzaF9lcnJvcihyZXF1ZXN0LCBlcnJvci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwCmluZGV4IDIyZmMwYThkZmIwOGVi
MmFkYjQwYjkwYzViMzE0MzZhZWUyOWNjMWYuLjIyNzVkNzQ4NWMxMjRjN2YzMTQ0ZTY1ODgzNTU0
NWY4ODg0ZmMwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0Q29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0Q29sb3IuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgZ2Jvb2xlYW4gd2Via2l0X2NvbG9yX3Bh
cnNlKFdlYktpdENvbG9yKiBjb2xvciwgY29uc3QgZ2NoYXIqIGNvbG9yU3RyaW5nKQogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvbG9yLCBGQUxTRSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoY29sb3JTdHJpbmcsIEZBTFNFKTsKIAotICAgIGF1dG8gd2ViQ29yZUNvbG9yID0gV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yV2l0aG91dENvbnRleHQoU3RyaW5nIHsgY29sb3JTdHJp
bmcgfSk7CisgICAgYXV0byB3ZWJDb3JlQ29sb3IgPSBXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
Q29sb3JXaXRob3V0Q29udGV4dChTdHJpbmc6OmZyb21MYXRpbjEoY29sb3JTdHJpbmcpKTsKICAg
ICBpZiAoIXdlYkNvcmVDb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBGQUxTRTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdM
aWIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIu
Y3BwCmluZGV4IDkzMzIzMmUyZjY4NGVkM2MyYjM1ZWU4MjAwYzBjNjc5ODNkZWRiZjcuLjRlZTNh
NWIwMDNiZDBmYzNjNTU1NmM1NTdhN2E3Y2Y4ZDNmZmFmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhj
b25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIAogICAgIGlmICghcGFyYW1ldGVycy5pc1Nl
cnZpY2VXb3JrZXJQcm9jZXNzKSB7CiAgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVE
ZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfcmVuZGVy
ZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsKLSAg
ICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9p
bXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKKyAgICAgICAgcGFyYW1ldGVycy5pbXBs
ZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKFN0cmluZzo6ZnJvbUxhdGluMSh3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRp
b25fbGlicmFyeV9uYW1lKCkpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtODksNyArODksNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgICAgICB3cGVfbG9hZGVyX2luaXQoImxpYldQRUJh
Y2tlbmQtZmRvLTEuMC5zby4xIik7CiAgICAgICAgIGlmIChBY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKCkpIHsKICAgICAgICAgICAgIHBhcmFtZXRlcnMu
aG9zdENsaWVudEZpbGVEZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3Jp
cHRvcih3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRv
cjo6QWRvcHQpKTsKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5
TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmcgeyB3cGVf
bG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGlicmFyeV9uYW1lKCkgfSk7CisgICAg
ICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVt
OjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJf
Z2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSkpOwogICAgICAgICB9CiAj
ZWxpZiBVU0UoRUdMKQogICAgICAgICBwYXJhbWV0ZXJzLndheWxhbmRDb21wb3NpdG9yRGlzcGxh
eU5hbWUgPSBXYXlsYW5kQ29tcG9zaXRvcjo6c2luZ2xldG9uKCkuZGlzcGxheU5hbWUoKTsKQEAg
LTExNiw4ICsxMTYsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgR0FwcGxpY2F0
aW9uKiBhcHAgPSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKGFwcCkKLSAg
ICAgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbklEID0gU3RyaW5nIHsgZ19hcHBsaWNhdGlvbl9n
ZXRfYXBwbGljYXRpb25faWQoYXBwKSB9OwotICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1l
ID0gU3RyaW5nIHsgZ19nZXRfYXBwbGljYXRpb25fbmFtZSgpIH07CisgICAgICAgIHBhcmFtZXRl
cnMuYXBwbGljYXRpb25JRCA9IFN0cmluZzo6ZnJvbUxhdGluMShnX2FwcGxpY2F0aW9uX2dldF9h
cHBsaWNhdGlvbl9pZChhcHApKTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IFN0
cmluZzo6ZnJvbUxhdGluMShnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkpOwogCiAgICAgcGFyYW1l
dGVycy5pbnNwZWN0b3JTZXJ2ZXJBZGRyZXNzID0gSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6
Omluc3BlY3RvclNlcnZlckFkZHJlc3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcApp
bmRleCA4MTcxZWY2MmNjNzdjMGIxMTJmZGU2MWM5MzZjZjNiMGRmZDdhNWY2Li4xM2I5MDI5Mjg3
Njc1NzA4MjZkMWE0ODU5YWJkYzE1YjM5ZTBiYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5k
LmNwcApAQCAtODQsMTQgKzg0LDE0IEBAIHN0YXRpYyBib29sIGlzRUdMSW1hZ2VBdmFpbGFibGUo
Ym9vbCB1c2VJbmRleGVkR2V0U3RyaW5nKQogICAgICAgICBHTGludCBudW1FeHRlbnNpb25zID0g
MDsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX05VTV9FWFRFTlNJT05TLCAmbnVtRXh0ZW5z
aW9ucyk7CiAgICAgICAgIGZvciAoR0xpbnQgaSA9IDA7IGkgPCBudW1FeHRlbnNpb25zOyArK2kp
IHsKLSAgICAgICAgICAgIFN0cmluZyBleHRlbnNpb24gPSBTdHJpbmcocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMsIGkpKSk7CisgICAgICAg
ICAgICBTdHJpbmcgZXh0ZW5zaW9uID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5naShHTF9FWFRFTlNJT05TLCBpKSkpOwogICAgICAg
ICAgICAgaWYgKGV4dGVuc2lvbiA9PSAiR0xfT0VTX0VHTF9pbWFnZSIgfHwgZXh0ZW5zaW9uID09
ICJHTF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsIikKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBTdHJpbmcg
ZXh0ZW5zaW9uc1N0cmluZyA9IFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6
OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CisgICAgICAgIFN0cmluZyBleHRlbnNpb25z
U3RyaW5nID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAgICAgZm9yIChhdXRvJiBleHRl
bnNpb24gOiBleHRlbnNpb25zU3RyaW5nLnNwbGl0KCcgJykpIHsKICAgICAgICAgICAgIGlmIChl
eHRlbnNpb24gPT0gIkdMX09FU19FR0xfaW1hZ2UiIHx8IGV4dGVuc2lvbiA9PSAiR0xfT0VTX0VH
TF9pbWFnZV9leHRlcm5hbCIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCmluZGV4
IGZlMDRjMWZmNDQxNjFjMDc2ZjUzN2RhNTEzY2MyZDcxNWNhOTAwM2UuLmJlOWJhNGM2MDkyMGI0
Zjc4OGEyYWJjNTkwOGQ2ZGZhYzA0OGYxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogICAgIFZlY3RvcjxTdHJpbmc+IGNvbW1hbmRzRm9yS2V5dmFsKHVuc2lnbmVk
IGtleXZhbCwgdW5zaWduZWQgbW9kaWZpZXJzKTsKIAotICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRv
ckNvbW1hbmQoY29uc3QgY2hhciogY29tbWFuZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5h
cHBlbmQoY29tbWFuZCk7IH0KKyAgICB2b2lkIGFkZFBlbmRpbmdFZGl0b3JDb21tYW5kKGNvbnN0
IGNoYXIqIGNvbW1hbmQpIHsgbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMuYXBwZW5kKFN0cmluZzo6
ZnJvbUxhdGluMShjb21tYW5kKSk7IH0KIAogcHJpdmF0ZToKICAgICBHdGtXaWRnZXQqIG1fbmF0
aXZlV2lkZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDQ0Y2Jm
NzNjNmFkMTU1Y2UyNjI5ZTAxYTQ3NDk4YzI1MjhjZWM0NmIuLjdiMDc5ODM4YjM3ZmY1N2EyODQ5
NDdlYWE5YTc5ZWE4Nzk2NmM2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5j
cHAKQEAgLTczMiw3ICs3MzIsNyBAQCBXZWJLaXRXZWJQYWdlKiB3ZWJraXRXZWJQYWdlQ3JlYXRl
KFdlYlBhZ2UqIHdlYlBhZ2UpCiB2b2lkIHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShX
ZWJLaXRXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6OkRpY3Rp
b25hcnkmIG1lc3NhZ2UpCiB7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBTdHJpbmcoIkdldFNuYXBzaG90IikpIHsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gIkdl
dFNuYXBzaG90IikgewogICAgICAgICBTbmFwc2hvdE9wdGlvbnMgc25hcHNob3RPcHRpb25zID0g
c3RhdGljX2Nhc3Q8U25hcHNob3RPcHRpb25zPihzdGF0aWNfY2FzdDxBUEk6OlVJbnQ2NCo+KG1l
c3NhZ2UuZ2V0KCJTbmFwc2hvdE9wdGlvbnMiX3MpKS0+dmFsdWUoKSk7CiAgICAgICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBzdGF0aWNfY2FzdDxBUEk6OlVJbnQ2NCo+KG1lc3NhZ2UuZ2V0KCJD
YWxsYmFja0lEIl9zKSktPnZhbHVlKCk7CiAgICAgICAgIFNuYXBzaG90UmVnaW9uIHJlZ2lvbiA9
IHN0YXRpY19jYXN0PFNuYXBzaG90UmVnaW9uPihzdGF0aWNfY2FzdDxBUEk6OlVJbnQ2NCo+KG1l
c3NhZ2UuZ2V0KCJTbmFwc2hvdFJlZ2lvbiJfcykpLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJ
R3RrLmNwcAppbmRleCA3NTFlNWExYjdjMmU3NWU2NTc5OGY0ZjU4Y2RmZWVlNzkwYTliNDhlLi5i
MGQ0ODI5ZWQyYTVjM2U4YTI3MjhjYTFhOWI3N2EwYzE1ODI3YWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9y
VUlHdGsuY3BwCkBAIC00NiwxMiArNDYsMTIgQEAgYm9vbCBXZWJJbnNwZWN0b3JVSTo6Y2FuTG9h
ZCgpCiAKIFN0cmluZyBXZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dlYmtpdC9pbnNwZWN0b3Iv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIik7CisgICAgcmV0dXJu
ICJyZXNvdXJjZTovLy9vcmcvd2Via2l0L2luc3BlY3Rvci9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMiX3M7CiB9CiAKIFN0cmluZyBSZW1vdGVXZWJJbnNwZWN0b3JV
STo6bG9jYWxpemVkU3RyaW5nc1VSTCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZygicmVz
b3VyY2U6Ly8vb3JnL3dlYmtpdC9pbnNwZWN0b3IvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzIik7CisgICAgcmV0dXJuICJyZXNvdXJjZTovLy9vcmcvd2Via2l0L2lu
c3BlY3Rvci9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMiX3M7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUu
Y3BwCmluZGV4IDMzODRmYTI1OGMyMGY0NDZmMjEyZGFlMmMyNGRjOWQ4MTIyYmFkMDEuLjc2ZTZj
ZWZlOTBkYzAwYmUzODRiMzU3ZmQ2MTkxZTZkZWFmYTQyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVk
aXRvckNsaWVudFdQRS5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciog
aW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHN0YXRpYyB2
b2lkIGhhbmRsZUtleVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKIHsKLSAgICBTdHJpbmcg
Y29tbWFuZE5hbWUgeyBpbnRlcnByZXRLZXlFdmVudChldmVudCkgfTsKKyAgICBhdXRvIGNvbW1h
bmROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7CiAK
ICAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBmcmFtZS5lZGl0b3Io
KS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CkBAIC0xOTAsNyArMTkwLDcgQEAgc3Rh
dGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVu
dCwgY29uc3QgUGxhdGZvcm1LZXkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihGcmFtZSYg
ZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
KQogewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJldEtleUV2ZW50KGV2ZW50KSB9
OworICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5
RXZlbnQoZXZlbnQpKTsKICAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dp
bi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9X
ZWJQYWdlV2luLmNwcAppbmRleCA3NjQ0M2E5NDI1NGFlNGZlOGU1OGY4MDdiYWE1MjE1NmMzNjdk
MTFkLi5jNzdmZjc4Y2QzY2Q5NjI3ZDFhZTdiOTMwYzgxNDU3MDk0NjQ1MjAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCkBA
IC0yNjgsNyArMjY4LDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVu
dChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICBpZiAoZXZlbnQudHlwZSgpICE9
IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMo
KS5rZXlwcmVzc0V2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIGNvbW1h
bmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChTdHJpbmcgeyBpbnRlcnByZXRLZXlFdmVudCgm
ZXZlbnQpIH0pOworICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0
cmluZzo6ZnJvbUxhdGluMShpbnRlcnByZXRLZXlFdmVudCgmZXZlbnQpKSk7CiAKICAgICBpZiAo
a2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CiAgICAgICAg
IC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8g
ZGVjaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNw
cAppbmRleCBhMjE2M2ZkMDkyYjQ1NDNjYWE1YTUyMDkxZGIwYTEzMzMxMWVjNjg0Li4zNWMyODk3
YWM4ODczYjE3NDMxZjllZDU2N2IyMWM5OWJmYjIzYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9BY2Nlc3NpYmxlVGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKQEAgLTY3Niw3ICs2NzYsNyBAQCBIUkVT
VUxUIEFjY2Vzc2libGVUZXh0OjpzZXRBdHRyaWJ1dGVzKGxvbmcgc3RhcnRPZmZzZXQsIGxvbmcg
ZW5kT2Zmc2V0LCBCU1RSKiBhdAogLy8gSUFjY2Vzc2libGUyCiBIUkVTVUxUIEFjY2Vzc2libGVU
ZXh0OjpnZXRfYXR0cmlidXRlcyhCU1RSKiBhdHRyaWJ1dGVzKQogewotICAgIFdURjo6U3RyaW5n
IHRleHQoInRleHQtbW9kZWw6YTEiKTsKKyAgICBXVEY6OlN0cmluZyB0ZXh0KCJ0ZXh0LW1vZGVs
OmExIl9zKTsKICAgICAqYXR0cmlidXRlcyA9IEJTdHJpbmcodGV4dCkucmVsZWFzZSgpOwogICAg
IHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN0YXRp
c3RpY3MuY3BwCmluZGV4IGYxMzE2ZGU0NmMyMTM1YTZkMjZmYWI5ZDE0NGRlYjNmODFmMDg5Mzgu
LjAxYTYxMmZkYTMyODlkOTY3Y2E5NjcyY2M0MjNlMWQzNWRhNTU5NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAgLTE0OSw3ICsxNDksNyBA
QCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlw
ZUNvdW50cyhfQ09NX091dHB0cl9vcHRfCiAgICAgSXRlcmF0b3IgZW5kID0ganNPYmplY3RUeXBl
TmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3VudE1hcDsKICAg
ICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVjdFR5cGVOYW1lcy0+YmVnaW4oKTsgY3Vy
cmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmcg
eyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUpOworICAgICAgICB0eXBlQ291bnRNYXAu
c2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5rZXkpLCBjdXJyZW50LT52YWx1ZSk7CiAK
ICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0cyhBZG9wdENPTSwgQ09NUHJvcGVydHlC
YWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50TWFwKSk7CiAgICAgcmVzdWx0cy5jb3B5
UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBIUkVTVUxUIFdl
YkNvcmVTdGF0aXN0aWNzOjpqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cyhfQ09NX091dHB0cl9v
cHRfIElQcm9wZXJ0eQogICAgIEl0ZXJhdG9yIGVuZCA9IGpzT2JqZWN0VHlwZU5hbWVzLT5lbmQo
KTsKICAgICBIYXNoTWFwPFN0cmluZywgaW50PiB0eXBlQ291bnRNYXA7CiAgICAgZm9yIChJdGVy
YXRvciBjdXJyZW50ID0ganNPYmplY3RUeXBlTmFtZXMtPmJlZ2luKCk7IGN1cnJlbnQgIT0gZW5k
OyArK2N1cnJlbnQpCi0gICAgICAgIHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nIHsgY3VycmVudC0+
a2V5IH0sIGN1cnJlbnQtPnZhbHVlKTsKKyAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJpbmc6
OmZyb21MYXRpbjEoY3VycmVudC0+a2V5KSwgY3VycmVudC0+dmFsdWUpOwogCiAgICAgQ09NUHRy
PElQcm9wZXJ0eUJhZzI+IHJlc3VsdHMoQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPGludD46OmNy
ZWF0ZUluc3RhbmNlKHR5cGVDb3VudE1hcCkpOwogICAgIHJlc3VsdHMuY29weVJlZlRvKHR5cGVO
YW1lc0FuZENvdW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAxYzdhZmQwNTMxYTkyZjMy
N2MzMzZiNjVmM2ExMmUwOTMyYTY4ZmQ2Li5iMjM5Mzc2MjQwZGM5ZDIzMDFmZTVjNTk0YjcxNzQ0
ZGU2ZTIyNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ1NCw3ICs0NTQsNyBAQCBib29s
IFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KEVsZW1lbnQqIGUs
IEtleWJvYXJkRXZlbnQqIGtlKQogICAgICAgICBpZiAoZG9tRWxlbWVudCkgewogICAgICAgICAg
ICAgSURPTUhUTUxJbnB1dEVsZW1lbnQqIGRvbUlucHV0RWxlbWVudDsKICAgICAgICAgICAgIGlm
IChTVUNDRUVERUQoZG9tRWxlbWVudC0+UXVlcnlJbnRlcmZhY2UoSUlEX0lET01IVE1MSW5wdXRF
bGVtZW50LCAodm9pZCoqKSZkb21JbnB1dEVsZW1lbnQpKSkgewotICAgICAgICAgICAgICAgIFN0
cmluZyBjb21tYW5kIHsgbV93ZWJWaWV3LT5pbnRlcnByZXRLZXlFdmVudChrZSkgfTsKKyAgICAg
ICAgICAgICAgICBhdXRvIGNvbW1hbmQgPSBTdHJpbmc6OmZyb21MYXRpbjEobV93ZWJWaWV3LT5p
bnRlcnByZXRLZXlFdmVudChrZSkpOwogICAgICAgICAgICAgICAgIC8vIFdlIGFsbG93IGVtcHR5
IGNvbW1hbmRzIGhlcmUgYmVjYXVzZSB0aGUgYXBwIGNvZGUgYWN0dWFsbHkgZGVwZW5kcyBvbiB0
aGlzIGJlaW5nIGNhbGxlZCBmb3IgYWxsIGtleSBwcmVzc2VzLgogICAgICAgICAgICAgICAgIC8v
IFdlIG1heSB3YW50IHRvIHJldmlzaXQgdGhpcyBsYXRlciBiZWNhdXNlIGl0IGRvZXNuJ3QgcmVh
bGx5IG1ha2Ugc2Vuc2UgdG8gc2VuZCBhbiBlbXB0eSBjb21tYW5kLgogICAgICAgICAgICAgICAg
IGZvcm1EZWxlZ2F0ZS0+ZG9QbGF0Zm9ybUNvbW1hbmQoZG9tSW5wdXRFbGVtZW50LCBCU3RyaW5n
KGNvbW1hbmQpLCBraXQoZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKSwgJnJlc3VsdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZmE5NTM3MjcyZjcyNmZlZDMzYzdiZjIyZWEzZWIz
ODhjMzk0Y2QxMS4uN2NlMjA3MTIwY2Q2Zjc2ZTBkYjcwZmRlYTQwZTE4MzNjYjU2ZWRiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzUwLDcgKzc1MCw3IEBAIFJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgQ2hpY2tlbkNhdCB0byBpbmNs
dWRlIENGTmV0d29yay9DRlVSTEVycm9yLmggdG8gZ2V0IHRoZXNlIHZhbHVlcwogICAgIC8vIEFs
dGVybmF0aXZlbHksIHdlIGNvdWxkIGNyZWF0ZSBvdXIgb3duIGVycm9yIGRvbWFpbi9jb2Rlcy4K
LSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtOTk5
LCByZXF1ZXN0LnVybCgpLCBTdHJpbmcoIkNhbmNlbGxlZCIpKTsKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtOTk5LCByZXF1ZXN0LnVybCgpLCBT
dHJpbmcoIkNhbmNlbGxlZCJfcykpOwogfQogCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25z
dApAQCAtNzgwLDcgKzc4MCw3IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uCiAKIFJlc291cmNl
RXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2UudXJsKCksIFN0
cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
U3RyaW5nKFdlYlVSTEVycm9yRG9tYWluKSwgLTExMDAsIHJlc3BvbnNlLnVybCgpLCBTdHJpbmco
IkZpbGUgZG9lcyBub3QgZXhpc3QuIl9zKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4
IDdmNTIxZGEwZmRhMjRhNTc0MDY4MGEyNDM3OWI4MmNiMjQwMzQzMzguLjc3MjRmYjAwMmExYWEy
ODAzNmIyZjBmYjJjZDA0ZDYyMWIzNTFlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUVkaXRpbmdLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChldmVudC50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygp
LmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gY29tbWFu
ZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVycHJldEtleUV2ZW50KCZl
dmVudCkgfSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3Ry
aW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkpKTsKIAogICAgIGlmIChr
ZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKICAgICAgICAg
Ly8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBk
ZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVjdXRlZCB2aWEg
RWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKaW5kZXggMDAwNWQwMTBkMzVi
YzZjNThjMTg2OWQxMWFjNzE4MmYyYzhjZTcyYS4uZTdmOTUwNjU1YjQyNDg2MTQ0MDU2Y2U4MzQ4
ZjU5NTA5ZjU2ZGU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFn
ZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9z
dG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBAIC00Nyw1ICs0Nyw1IEBAIFN0cmluZyBX
ZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKICAgICAg
ICAgJiYgOjpHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9BTFJFQURZX0VYSVNUUykKICAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gU3RyaW5nKGRhdGFiYXNlRGlyZWN0
b3J5KTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGFiYXNlRGlyZWN0b3J5KTsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
NzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5YjkzM2IxMDU3NzM1Y2NjLi4zNDhkODVhYjk2ZGJiYWZm
MWI0ZDZjNzM5MGExMzNlZjIwOGJhMDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJh
c2UgdG8gU3RyaW5nOjpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBw
cml2YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzg5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nQnVpbGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25p
dG9yLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRl
ckZpZWxkLmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVk
QnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0SWRlbnRpdHkyKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2Vu
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJWaWV3Q2FuUGFzdGVVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkxDcmFzaC5tbToKKyAgICAgICAgKC1bV2ViS2l0MVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OnJ1
bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpdKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpDb25uZWN0aW9uOjp3ZWJTb2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KToKKwogMjAyMi0wNC0wOCAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01lcmdlLVF1ZXVl
XSBDcmVhdGUgc2VwZXJhdGUgcXVldWUgZm9yIHVuc2FmZSB2ZXJzaW9uCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBlMTk2NjhjY2Q3NDliYmU5YTY4
OGUwNjg0MzcwODhmZDM2NThhZjg2Li5jOGU4MzAyYmYyOTdhMzExNGRlMjAzYzM1YjEyMzlmMTI1
MzBkMTcyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAK
QEAgLTExNzUsMTAgKzExNzUsMTAgQEAgc3RhdGljIGJvb2wgaGFuZGxlQ29udHJvbENvbW1hbmQo
Y29uc3QgY2hhciogY29tbWFuZCkKIHsKICAgICBpZiAoIXN0cmNtcCgiI0NIRUNLIEZPUiBBQkFO
RE9ORUQgRE9DVU1FTlRTIiwgY29tbWFuZCkpIHsKICAgICAgICAgLy8gRHVtcFJlbmRlclRyZWUg
ZG9lcyBub3Qgc3VwcG9ydCBjaGVja2luZyBmb3IgYWJhbmRvbmRlZCBkb2N1bWVudHMuCi0gICAg
ICAgIFN0cmluZyByZXN1bHQoIlxuIik7CisgICAgICAgIENTdHJpbmcgcmVzdWx0KCJcbiIpOwog
ICAgICAgICBwcmludGYoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxuIik7CiAgICAgICAgIHBy
aW50ZigiQ29udGVudC1MZW5ndGg6ICV1XG4iLCByZXN1bHQubGVuZ3RoKCkpOwotICAgICAgICBm
d3JpdGUocmVzdWx0LnV0ZjgoKS5kYXRhKCksIDEsIHJlc3VsdC5sZW5ndGgoKSwgc3Rkb3V0KTsK
KyAgICAgICAgZndyaXRlKHJlc3VsdC5kYXRhKCksIDEsIHJlc3VsdC5sZW5ndGgoKSwgc3Rkb3V0
KTsKICAgICAgICAgcHJpbnRmKCIjRU9GXG4iKTsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICIj
RU9GXG4iKTsKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNGQ2NDc1MDY4YzNk
YWJkZDI0YzMxZmMxMGRkOGI4NDBiMTA0YmQzZC4uNjQ1NWU4MWFmMWYyYTRhNTVkZWMwZWJhYjkz
MWQwMDU5NTYwYTEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiB7
Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsg
IjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwog
ICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVD
VF9UUlVFKGNvcHkuaW1wbCgpLT5oYXNPbmVSZWYoKSk7CkBAIC00NSw3ICs0NSw3IEBAIFRFU1Qo
V1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5TFZTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhy
ZWFkQ29waWVyLCBNb3ZlUlZTdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQi
IH07CisgICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBj
cm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAgIEVYUEVDVF9UUlVFKGNvcHku
aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX05VTEwob3JpZ2luYWwuaW1wbCgpKTsK
QEAgLTUzLDcgKzUzLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVSVlN0cmlu
ZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1Jl
ZikKIHsKLSAgICBTdHJpbmcgb3JpZ2luYWwgeyAiMTIzNCIgfTsKKyAgICBTdHJpbmcgb3JpZ2lu
YWwgeyAiMTIzNCJfcyB9OwogICAgIFN0cmluZyBvcmlnaW5hbDIgeyBvcmlnaW5hbCB9OwogICAg
IGF1dG8gY29weSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKG9yaWdpbmFsKSk7CiAgICAgRVhQ
RUNUX0VRKG9yaWdpbmFsLmltcGwoKS0+cmVmQ291bnQoKSwgMnUpOwpAQCAtNjMsNyArNjMsNyBA
QCBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weVJWU3RyaW5nSGF2aW5nVHdvUmVmKQog
CiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWT3B0aW9uYWxTdHJpbmcpCiB7Ci0g
ICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBhdXRvIGNvcHkgPSBj
cm9zc1RocmVhZENvcHkob3JpZ2luYWwpOwogICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsLT5pbXBs
KCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJl
ZigpKTsKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlM
Vk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgTW92ZVJWT3B0
aW9uYWxTdHJpbmcpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEy
MzQiIH07CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgIjEyMzQiX3MgfTsK
ICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAg
IEVYUEVDVF9UUlVFKGNvcHktPmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxM
KG9yaWdpbmFsLT5pbXBsKCkpOwpAQCAtODAsNyArODAsNyBAQCBURVNUKFdURl9Dcm9zc1RocmVh
ZENvcGllciwgTW92ZVJWT3B0aW9uYWxTdHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29w
aWVyLCBDb3B5UlZPcHRpb25hbFN0cmluZ0hhdmluZ1R3b1JlZikKIHsKLSAgICBTdHJpbmcgc3Ry
aW5nIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIHN0cmluZyB7ICIxMjM0Il9zIH07CiAgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG9yaWdpbmFsIHsgc3RyaW5nIH07CiAgICAgYXV0byBjb3B5ID0g
Y3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfRVEob3JpZ2luYWwtPmltcGwo
KS0+cmVmQ291bnQoKSwgMnUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxl
U3lzdGVtLmNwcAppbmRleCA4NjhjY2JiOWYzMzQ5MWI1M2E0ZmYyNTgyZDVkYWE1YWU1MDI2NGQw
Li5kYjI0NjUyMzk2ODY1MTY4ODgxYjc0MTQ3Y2YzYzRjM2E4NmE0Yjg0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBA
IHByaXZhdGU6CiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIE1hcHBpbmdNaXNzaW5nRmlsZSkKIHsK
ICAgICBib29sIHN1Y2Nlc3M7Ci0gICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgbWFwcGVk
RmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpLCBGaWxlU3lzdGVtOjpNYXBwZWRG
aWxlTW9kZTo6U2hhcmVkLCBzdWNjZXNzKTsKKyAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0
YSBtYXBwZWRGaWxlRGF0YShTdHJpbmcoIm5vdF9leGlzdGluZ19maWxlIl9zKSwgRmlsZVN5c3Rl
bTo6TWFwcGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN1
Y2Nlc3MpOwogICAgIEVYUEVDVF9UUlVFKCFtYXBwZWRGaWxlRGF0YSk7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1iZXIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcAppbmRleCA5ZTZkYzlkMjUzMjVjNTMw
YzQyOTdiMDFmNGMzNTI0ZTk1NzI1Y2E4Li43Zjk3YmNkMjc0Mzc3YmJiMGJkYTlkOTk4ZjQ4ZGNi
ZWM3YTEwMTEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhO
dW1iZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5j
cHAKQEAgLTQ5LDYxICs0OSw2MSBAQCBURVNUKFdURiwgSGV4TnVtYmVyKQogICAgIHsKICAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50
ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSIsIGJ1aWxkZXIpOworICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiQSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChpbnRlZ2VyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
ImEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoImEiX3MsIGJ1aWxk
ZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgMSwgTG93ZXJjYXNlKSk7Ci0gICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxk
ZXJDb250ZW50KCJhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDIs
IExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMGEiLCBidWlsZGVy
KTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIl9zLCBidWlsZGVyKTsKICAgICB9
CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoaGV4KGludGVnZXIsIDMsIExvd2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDBhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMGEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoaW50ZWdlciwgNCwgTG93ZXJj
YXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoaGV4KGxhcmdlSW50ZWdlcikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
RkFDRSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiRkFDRSJfcywg
YnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIsIDIpKTsKLSAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIkZBQ0UiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgoYnl0ZSkp
OwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiODAiLCBidWlsZGVyKTsKKyAgICAgICAg
ZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGludGVnZXIpLCAyKSk7Ci0gICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwQSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMEEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBlNzY3MjU4OTU2ZTM4OWRiOWNh
ZWZlY2RkNDMyZDQ4OTNhYzAwN2M4Li5hNDg3ZTU3ZTlkMDQ2MTdkNDlkZThkYTE5MTJiZTQ4MjYx
NjgzMDU5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWls
ZGVyLmNwcApAQCAtNjMsMjUgKzYzLDI1IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1
bHRDb25zdHJ1Y3RvcikKIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKIHsKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IikpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7
CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoImVmZ2giLCAzKTsKLSAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAg
IGJ1aWxkZXIuYXBwZW5kKCIiKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmciX3MsIGJ1aWxkZXIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyIsIGJ1aWxkZXIpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiX3MsIGJ1aWxkZXIpOwogCiAg
ICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyMTsKICAgICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoIiIs
IDApOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWls
ZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBi
dWlsZGVyKTsKICAgICBidWlsZGVyMS5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIuY2hhcmFjdGVy
czgoKSwgYnVpbGRlci5sZW5ndGgoKSk7CiAgICAgYnVpbGRlcjEuYXBwZW5kKCJYWVoiKTsKICAg
ICBidWlsZGVyLmFwcGVuZENoYXJhY3RlcnMoYnVpbGRlcjEuY2hhcmFjdGVyczgoKSwgYnVpbGRl
cjEubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIl9zLCBidWlsZGVy
KTsKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CiAgICAgYnVpbGRlcjIucmVzZXJ2ZUNh
cGFjaXR5KDEwMCk7CkBAIC0xMzAsNTkgKzEzMCw1OSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0
LCBBcHBlbmRJbnRNaW4pCiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3Ry
aW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwogCi0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
U3RyaW5nKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkpLCBidWlsZGVyKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudChTdHJpbmc6OmZyb21MYXRpbjEoZXhwZWN0ZWRTdHJpbmcuY19zdHIoKSksIGJ1
aWxkZXIpOwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBWYXJpYWRpY0FwcGVuZCkKIHsK
ICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IikpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmco
IjAxMjM0NTY3ODkiX3MpKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3
ODkiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZCIpOwotICAgICAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICAg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIl9zLCBidWlsZGVyKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ2UnKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
IiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3Ms
IGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAn
ZScsICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIs
IGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEiKSwgIkIiLCAnQycs
ICIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZUFCQyIs
IGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3Mp
LCAiYWJjZCIsICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIl9zLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJB
Il9zKSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZUFCQyJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1
Njc4OSIpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksICJhYmNkIiwgYnVsbHNleWUsICIiKTsKICAgICAgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1
bGxzZXllLCAxKSksIGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIkEi
KSwgIkIiLCAnQycsICIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwg
IkIiLCAnQycsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygi
MDEyMzQ1Njc4OWFiY2QiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSwgIkFCQyIpLCBidWlsZGVyKTsK
ICAgICB9CiAKICAgICB7CiAgICAgICAgIC8vIFRlc3Qgd2hlcmUgd2UgdXBjb252ZXJ0IHRoZSBT
dHJpbmdCdWlsZGVyIGZyb20gOC1iaXQgdG8gMTYtYml0LCBhbmQgZG9uJ3QgZml0IGluIHRoZSBl
eGlzdGluZyBjYXBhY2l0eS4KICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiKSwgImFiY2QiLCAnZScsICIiKTsK
LSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIsIGJ1aWxkZXIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIs
ICdlJywgIiIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
Il9zLCBidWlsZGVyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAg
ICAgICAgIEVYUEVDVF9MVChidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAz
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwg
IiIpOwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0aGUgU3RyaW5nQnVpbGRlciBm
cm9tIDgtYml0IHRvIDE2LWJpdCwgYnV0IHdvdWxkIGhhdmUgZml0IGluIHRoZSBjYXBhY2l0eSBp
ZiB0aGUgdXBjb252ZXJ0IHdhc24ndCBuZWNlc3NhcnkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJh
YmNkIiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIucmVzZXJ2ZUNh
cGFjaXR5KDMyKTsKICAgICAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pczhCaXQoKSk7CiAgICAg
ICAgIEVYUEVDVF9HRShidWlsZGVyLmNhcGFjaXR5KCksIGJ1aWxkZXIubGVuZ3RoKCkgKyAzKTsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwgYnVsbHNleWUsICIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIl9zKSwgIkIiLCBidWxsc2V5ZSwgIiIp
OwogICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudChtYWtlU3RyaW5nKCIwMTIzNDU2Nzg5YWJj
ZGVBQiIsIFN0cmluZygmYnVsbHNleWUsIDEpKSwgYnVpbGRlcik7CiAgICAgfQogfQpAQCAtMTky
LDMyICsxOTIsMzIgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CiAg
ICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKS5pbXBsKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIg
c2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgogICAg
IGJ1aWxkZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVD
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgyMDApOwogICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwg
c3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoi
KSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9m
IHRoZSBTdHJpbmdCdWlsZGVyLgogICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmlu
ZygpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcx
LmFwcGVuZCgiREVGIl9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
KSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiX3Mp
LCBzdHJpbmcxKTsKIAogICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4KICAgICBzdHJpbmcx
ID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWls
ZGVyLmFwcGVuZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEp
OwogfQogCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkp
CkBAIC0yMjcsMTMgKzIyNywxMyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCiAgICAgdW5zaWduZWQgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5
KCk7CiAgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSwgc3RyaW5nKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmltcGwo
KSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOwogICAgIEVYUEVD
VF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwgYnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKIAogICAg
IC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmln
aW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuCiAgICAgYnVpbGRlci5h
cHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Ci0gICAgRVhQRUNUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3
ODkiX3MpLCBzdHJpbmcpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hv
dWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KICAgICBidWlsZGVy
LnJlc2VydmVDYXBhY2l0eSgyMDApOwpAQCAtMjQxLDE5ICsyNDEsMTkgQEAgVEVTVChTdHJpbmdC
dWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHN0cmluZyA9IGJ1aWxk
ZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNUX0VRKGNhcGFjaXR5LCBi
dWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuY2hhcmFjdGVyczgoKSwg
YnVpbGRlci5jaGFyYWN0ZXJzOCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2
Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiX3MpLCBzdHJpbmcp
OwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNl
cnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5n
QnVpbGRlci4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKICAgICBTdHJpbmcg
c3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CiAgICAgRVhQRUNU
X0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkpOwogICAgIEVYUEVDVF9FUShzdHJpbmcx
LmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyJfcyksIHN0cmluZzEpOwogICAgIHN0cmluZzEuYXBwZW5kKCJERUYiX3MpOwotICAg
IEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3Ry
aW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6QUJDIl9zKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGIl9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRl
ciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLgogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwpAQCAtMjYy
LDcgKzI2Miw3IEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSkKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFj
dGVyczgoKSk7CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIj
IyMiKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiB9CiAKIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQpAQCAtMjkwLDE1ICsyOTAsMTUgQEAgVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgUmVzaXplKQogICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7
CiAgICAgYnVpbGRlci5zaHJpbmsoMTApOwogICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVu
Z3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiX3MsIGJ1aWxkZXIpOwogICAg
IGJ1aWxkZXIuc2hyaW5rKDgpOwogICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7
Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3Il9zLCBidWlsZGVyKTsKIAogICAgIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluayg3KTsKICAgICBFWFBFQ1RfRVEoN1UsIGJ1
aWxkZXIubGVuZ3RoKCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2IiwgYnVp
bGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiX3MsIGJ1aWxkZXIpOwog
ICAgIGJ1aWxkZXIuc2hyaW5rKDApOwogICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwogfQpAQCAt
MzExLDIxICszMTEsMjEgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRXF1YWwpCiAgICAgRVhQ
RUNUX1RSVUUoZXF1YWwoYnVpbGRlcjEsIHN0YXRpY19jYXN0PExDaGFyKj4oMCksIDApKTsKICAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoKSk7CiAgICAgRVhQRUNUX1RSVUUoU3Ry
aW5nKCkgPT0gYnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygi
YWJjIikpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxICE9IFN0cmluZygiYWJjIl9zKSk7CiAK
ICAgICBidWlsZGVyMS5hcHBlbmQoIjEyMyIpOwogICAgIGJ1aWxkZXIxLnJlc2VydmVDYXBhY2l0
eSgzMik7CiAgICAgYnVpbGRlcjIuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZl
Q2FwYWNpdHkoNjQpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIxID09IGJ1aWxkZXIyKTsKLSAg
ICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBTdHJpbmcoIjEyMyIpKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoIjEyMyIpID09IGJ1aWxkZXIxKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9
PSBTdHJpbmcoIjEyMyJfcykpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIl9zKSA9PSBi
dWlsZGVyMSk7CiAKICAgICBidWlsZGVyMi5hcHBlbmQoIjQ1NiIpOwogICAgIEVYUEVDVF9UUlVF
KGJ1aWxkZXIxICE9IGJ1aWxkZXIyKTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAhPSBidWls
ZGVyMSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCIxMjMiKSAhPSBidWlsZGVyMik7Ci0gICAg
RVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0gU3RyaW5nKCIxMjMiKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCIxMjMiX3MpICE9IGJ1aWxkZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMiAh
PSBTdHJpbmcoIjEyMyJfcykpOwogICAgIGJ1aWxkZXIyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7
CiAKQEAgLTM1Miw3ICszNTIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb0F0b21TdHJp
bmcpCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIxMjMi
KTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyMyIpLCBhdG9tU3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIxMjMiX3MpLCBhdG9tU3RyaW5nKTsKIAogICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFj
aXR5KDI1Nik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5zaG91bGRTaHJpbmtUb0ZpdCgpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYTc2
MmJlMGEyMjcxYjg2N2Q2MjkwZGQyN2ExZDBiMzlkNTIyMTRkZi4uYmIzMzE2NWI2Njc3NTM1ZjRi
ZTZlNDQxZGViYzIxN2FkZjI4ZmIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIFRFU1QoV1RGLCBTdHJpbmdJ
bXBsU3RhcnRzV2l0aElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQogCiBURVNUKFdURiwgU3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSkKIHsKLSAgICBTdHJpbmcgc3RyaW5nKCJU
ZXN0IHRFU1QiKTsKKyAgICBTdHJpbmcgc3RyaW5nKCJUZXN0IHRFU1QiX3MpOwogICAgIEFTU0VS
VF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0
IikpOwogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RyaW5nLCAidGVzdCB0ZSIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRlc3QgdGVzdCIpKTsKICAgICBBU1NFUlRfRkFMU0Uo
c3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRleCIpKTsK
IAogICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nLCAiIikpOwotICAgIEFTU0VSVF9UUlVFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoU3RyaW5nKCIiKSwgIiIpKTsKKyAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKGVtcHR5U3RyaW5nKCksICIiKSk7CiAKICAgICBBU1NFUlRfRkFM
U0Uoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmcoKSwgInQiKSk7CiAg
ICAgQVNTRVJUX0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5n
KCksICIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJp
bmdPcGVyYXRvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3Bl
cmF0b3JzLmNwcAppbmRleCA4ODA5NGZiMWJiMmM0ZGFlNzQzMzQ5Njc1MTc1MDY5NjYxMmUxMWZj
Li5iNDQyZTQzNjhjMDNkYjdiYTYzMGM3YWVhMmE5ODM1ZDM0OGI0NGI4IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKQEAgLTQyLDEx
ICs0MiwxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoV1RGLCBTdHJpbmdP
cGVyYXRvcnMpCiB7Ci0gICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CisgICAgU3RyaW5nIHN0
cmluZygiU3RyaW5nIl9zKTsKICAgICBBdG9tU3RyaW5nIGF0b21TdHJpbmcoIkF0b21TdHJpbmci
KTsKICAgICBBU0NJSUxpdGVyYWwgbGl0ZXJhbCB7ICJBU0NJSUxpdGVyYWwiX3MgfTsKIAotICAg
IFN0cmluZyBzdHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3IiB9OworICAgIFN0cmluZyBz
dHJpbmdWaWV3QmFja2luZyB7ICJTdHJpbmdWaWV3Il9zIH07CiAgICAgU3RyaW5nVmlldyBzdHJp
bmdWaWV3IHsgc3RyaW5nVmlld0JhY2tpbmcgfTsKIAogICAgIEVYUEVDVF9FUSgwLCB3dGZTdHJp
bmdDb3B5Q291bnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3
LmNwcAppbmRleCBjMjUzMzgyZDM0YTE3ODMyNmMwOWM3Y2RlZjVjNzU3YmY3OGVhZDA0Li5iYWY0
ZDdhY2JlZTNmNjY2NmZjOWY5YzQwOWEzY2UwY2UxNzc0MTVjIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcApAQCAtNDUsNyArNDUsNyBAQCBURVNUKFdU
RiwgU3RyaW5nVmlld1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJpbmdWaWV3IG51
bGxWaWV3OwogICAgIFN0cmluZ1ZpZXcgZW1wdHlWaWV3ID0gU3RyaW5nVmlldzo6ZW1wdHkoKTsK
LSAgICBTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIik7CisgICAgU3RyaW5nIHN0
cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyJfcyk7CiAgICAgU3RyaW5nVmlldyB2aWV3V2l0aENo
YXJhY3RlcnMoc3RyaW5nV2l0aENoYXJhY3RlcnMpOwogCiAgICAgRVhQRUNUX1RSVUUodmlld1dp
dGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFZpZXcpKTsKQEAgLTg0LDcgKzg0LDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdFbXB0eVZzTnVsbCkKICAgICBlbHNlCiAgICAgICAgIFNVQ0NFRUQo
KTsKIAotICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iKSk7
CisgICAgU3RyaW5nVmlldyB2aWV3V2l0aENoYXJhY3RlcnMoU3RyaW5nKCJoZWxsbyJfcykpOwog
ICAgIEVYUEVDVF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNOdWxsKCkpOwogICAgIEVYUEVD
VF9GQUxTRSh2aWV3V2l0aENoYXJhY3RlcnMuaXNFbXB0eSgpKTsKIApAQCAtMTQxLDcgKzE0MSw3
IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBh
cmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3OjplbXB0eSgpLmNvZGVVbml0cygpLCB7IH0pKTsK
ICAgICBFWFBFQ1RfVFJVRShjb21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHko
KS5ncmFwaGVtZUNsdXN0ZXJzKCksIHsgfSkpOwogCi0gICAgU3RyaW5nIGhlbG8oImhlbG8iKTsK
KyAgICBTdHJpbmcgaGVsbygiaGVsbyJfcyk7CiAgICAgU3RyaW5nVmlldyBoZWxvVmlldyhoZWxv
KTsKIAogICAgIGF1dG8gY29kZVBvaW50cyA9IGhlbG9WaWV3LmNvZGVQb2ludHMoKTsKQEAgLTE1
Niw3ICsxNTYsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1Rf
RVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2gnKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSBz
YXZlZEl0ZXJhdG9yOwogICAgIEVYUEVDVF9FUSgqY29kZVBvaW50c0l0ZXJhdG9yLCAnbCcpOwot
ICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCIpOworICAgIFN0cmluZyB3ZWJraXQoIndlYmtpdCJf
cyk7CiAgICAgYXV0byB3ZWJraXRDb2RlUG9pbnRzID0gU3RyaW5nVmlldyh3ZWJraXQpLmNvZGVQ
b2ludHMoKTsKICAgICBjb2RlUG9pbnRzSXRlcmF0b3IgPSB3ZWJraXRDb2RlUG9pbnRzLmJlZ2lu
KCk7CiAgICAgKytjb2RlUG9pbnRzSXRlcmF0b3I7CkBAIC05ODMsMTAgKzk4MywxMCBAQCBURVNU
KFdURiwgU3RyaW5nVmlld1N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMp
CiAKIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXNBbGxBU0NJSSkKIHsKLSAgICBFWFBFQ1RfVFJVRShT
dHJpbmdWaWV3KFN0cmluZygiSGVsbG8iKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmdWaWV3KFN0cmluZygiQ29jb2EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBFQ1Rf
RkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIvCfk7EiKSkuaXNBbGxBU0NJSSgpKTsKLSAgICBFWFBF
Q1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmcoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOworICAg
IEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJIZWxsbyJfcykpLmlzQWxsQVNDSUkoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIl9zKSkuaXNBbGxBU0NJ
SSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6OmZyb21MYXRpbjEoIvCf
k7EiKSkuaXNBbGxBU0NJSSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nVmlldyhTdHJpbmc6
OmZyb21MYXRpbjEoIlx1MDA4MCIpKS5pc0FsbEFTQ0lJKCkpOwogICAgIEVYUEVDVF9UUlVFKFN0
cmluZ1ZpZXcoU3RyaW5nKGJpdHdpc2VfY2FzdDxjb25zdCBVQ2hhcio+KHUiSGVsbG8iKSkpLmlz
QWxsQVNDSUkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCmluZGV4
IDgzNzA1NzBhYWZhNDEzMTgyNGUzZDhkYTM4ODY5OWJhMjljOGJjZTguLjU1MTdhZjVkNzQzMTA1
NTk3ZDNkODAwMTViNmNjNzI0OWRkOTY2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VVJMLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxDb25zdHJ1Y3Rv
ckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfVFJVRShrdXJsLmlzVmFsaWQoKSk7CiAKICAgICBFWFBF
Q1RfRVEoa3VybC5wcm90b2NvbCgpID09ICJodHRwIiwgdHJ1ZSk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygid3d3LmV4YW1wbGUuY29tIiksIGt1cmwuaG9zdCgpLnRvU3RyaW5nKCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSJfcyksIGt1cmwuaG9zdCgpLnRvU3RyaW5n
KCkpOwogICAgIEVYUEVDVF9UUlVFKCEha3VybC5wb3J0KCkpOwogICAgIEVYUEVDVF9FUSg4MDgw
LCBrdXJsLnBvcnQoKS52YWx1ZSgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSIp
LCBrdXJsLnVzZXIoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiKSwga3VybC5w
YXNzd29yZCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIvaW5kZXguaHRtbCIpLCBrdXJsLnBh
dGgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCIpLCBrdXJsLmxhc3RQYXRo
Q29tcG9uZW50KCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiKSwga3VybC5xdWVy
eSgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ1c2VybmFtZSJfcyksIGt1cmwudXNlcigpKTsK
KyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJwYXNzd29yZCJfcyksIGt1cmwucGFzc3dvcmQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiX3MpLCBrdXJsLnBhdGgoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiaW5kZXguaHRtbCJfcyksIGt1cmwubGFzdFBhdGhDb21wb25lbnQo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidmFyPXZhbCJfcyksIGt1cmwucXVlcnkoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoa3VybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZnJhZ21lbnQiKSwga3VybC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygiZnJhZ21lbnQiX3MpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmllcigp
KTsKIH0KIAogc3RhdGljIFVSTCBjcmVhdGVVUkwoQVNDSUlMaXRlcmFsIHVybEFzU3RyaW5nKQpA
QCAtODAsNDMgKzgwLDQzIEBAIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxB
c1N0cmluZykKIFRFU1RfRihXVEZfVVJMLCBVUkxQcm90b2NvbEhvc3RBbmRQb3J0KQogewogICAg
IGF1dG8gdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1w
bGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9z
dEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVh
dGVVUkwoImh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92
YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29s
SG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly86cGFzc3dvcmRA
d3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnBy
b3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbTo4MDgwIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1
cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2VybmFtZUB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRl
eC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJs
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOi9pbmRleC5odG1sP3Zhcj12YWwj
ZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYS9iL2MiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYiJfcyk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0
cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAg
ICB1cmwgPSBjcmVhdGVVUkwoImZpbGU6Ly8vYSJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
ZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJmaWxlOi8vIl9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwg
PSBjcmVhdGVVUkwoImFzZGY6Ly91c2VybmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4
MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
ImFzZGY6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiX3Mp
LCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiYXNk
ZjovLy9hL2IvYyJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJv
dG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJhc2RmOi8vIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiB9CiAKIFRFU1RfRihXVEZfVVJMLCBVUkxEYXRh
VVJJU3RyaW5nU2hhcmluZykKQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUX0YoV1RGX1VSTCwgVVJM
RGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQogewogICAgIFVSTCB1cmwxID0gY3JlYXRlVVJMKCJ3
d3cud2Via2l0Lm9yZy8/Il9zKTsKICAgICBVUkwgdXJsMiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkxPXZhbDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3Rv
cjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTIgeyB7ICJrZXkxIl9z
LCAidmFsMSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1
cmwxLCB1cmwyKSwgdGVzdFZlY3RvcjEyKTsKICAgICAKICAgICBVUkwgdXJsMzMgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKQEAgLTM4OCw2NyArMzg4
LDY3IEBAIFRFU1RfRihXVEZfVVJMLCBVUkxEaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMpCiAgICAg
CiAgICAgVVJMIHVybDMgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Il9zKTsK
ICAgICBVUkwgdXJsNCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkxPXZh
bDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMzQge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXN0VmVjdG9yMzQgeyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwzLCB1cmw0KSwgdGVzdFZlY3Rv
cjM0KTsKICAgICAKICAgICBVUkwgdXJsNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnLz9rZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmw2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvPyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3I1NiB7eyJrZXkxIiwgInZhbDEifX07CisgICAgVmVjdG9yPEtleVZhbHVl
UGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3I1NiB7IHsgImtleTEiX3MsICJ2YWwxIl9z
IH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDUsIHVybDYp
LCB0ZXN0VmVjdG9yNTYpOwogICAgIAogICAgIFVSTCB1cmwxMyA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz9rZXkxPXZhbDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMTQg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTE9dmFsMSJf
cyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
MzE0IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsKKyAgICBWZWN0b3I8S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEzMTQgeyB7ICJrZXkxIl9zLCAi
dmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZl
cmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxMywgdXJsMTQpLCB0ZXN0VmVjdG9yMTMxNCk7CiAgICAg
CiAgICAgVVJMIHVybDE1ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9
dmFsMSJfcyk7CiAgICAgVVJMIHVybDE2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmcvP2tleTI9dmFsMiJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmlu
Zz4+IHRlc3RWZWN0b3IxNTE2IHt7ImtleTEiLCAidmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE1MTYg
eyB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9IH07CiAgICAg
RVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwxNSwgdXJsMTYpLCB0ZXN0VmVj
dG9yMTUxNik7CiAgICAgCiAgICAgVVJMIHVybDExID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3Lndl
YmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxMiA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9rZXkzPXZhbDMma2V5MT12YWwxIl9zKTsKLSAg
ICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIge3si
a2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTExMiB7IHsgImtleTIiX3MsICJ2YWwyIl9z
IH0sIHsgImtleTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVl
cnlQYXJhbWV0ZXJzKHVybDExLCB1cmwxMiksIHRlc3RWZWN0b3IxMTEyKTsKICAgICAKICAgICBV
UkwgdXJsMTcgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtl
eTI9dmFsMiJfcyk7CiAgICAgVVJMIHVybDE4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvP2tleTEma2V5Mz12YWwzIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGVzdFZlY3RvcjE3MTgge3sia2V5MSIsICIifSwgeyJrZXkxIiwgInZhbDEi
fSwgeyJrZXkyIiwgInZhbDIifSwgeyJrZXkzIiwgInZhbDMifX07CisgICAgVmVjdG9yPEtleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHsgeyJrZXkxIl9zLCAiIl9z
IH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtl
eTMiX3MsICJ2YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0
ZXJzKHVybDE3LCB1cmwxOCksIHRlc3RWZWN0b3IxNzE4KTsKICAgICAKICAgICBVUkwgdXJsMTkg
PSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mj12YWwyJmtleTE9dmFsMSZr
ZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwyMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkzPXZhbDMma2V5MSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJp
bmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxOTIwIHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2YWwx
In0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTky
MCB7IHsgImtleTEiX3MsICIiX3MgfSwgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJf
cywgInZhbDIiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSwgeyAia2V5MyJfcywgInZhbDMi
X3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTksIHVy
bDIwKSwgdGVzdFZlY3RvcjE5MjApOwogICAgIAogICAgIFVSTCB1cmwyMSA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnLz8/Il9zKTsKICAgICBVUkwgdXJsMjIgPSBjcmVhdGVVUkwo
Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjEyMiB7eyIvP3Rlc3QiLCAidGVz
dCJ9LCB7Ij8iLCAiIn19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiB0ZXN0VmVjdG9yMjEyMiB7IHsgIi8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJf
cyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMSwgdXJs
MjIpLCB0ZXN0VmVjdG9yMjEyMik7CiAgICAgCiAgICAgVVJMIHVybDIzID0gY3JlYXRlVVJMKCJo
dHRwOi8vd3d3LndlYmtpdC5vcmcvPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMjQgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PT0iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjMyNCB7eyIiLCAiPSJ9LCB7IiIsICJ0ZXN0
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MjMyNCB7IHsgIiJfcywgIj0iX3MgfSwgeyAiIl9zLCAidGVzdCJfcyB9IH07CiAgICAgRVhQRUNU
X0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyMywgdXJsMjQpLCB0ZXN0VmVjdG9yMjMy
NCk7CiAgICAgCiAgICAgVVJMIHVybDI3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/PyJfcyk7CiAgICAgVVJMIHVybDI4ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5v
cmc/Lz90ZXN0PXRlc3QiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiB0ZXN0VmVjdG9yMjcyOCB7eyIvP3Rlc3QiLCAidGVzdCJ9LCB7Ij8iLCAiIn19OworICAg
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjcyOCB7IHsg
Ii8/dGVzdCJfcywgInRlc3QiX3MgfSwgeyAiPyJfcywgIiJfcyB9IH07CiAgICAgRVhQRUNUX0VR
KGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmwyNywgdXJsMjgpLCB0ZXN0VmVjdG9yMjcyOCk7
CiAgICAgCiAgICAgVVJMIHVybDI5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc/
PXRlc3QiX3MpOwogICAgIFVSTCB1cmwzMCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjI5MzAge3siIiwgIj0ifSwgeyIiLCAidGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI5MzAgeyB7ICIiX3MsICI9Il9zIH0s
IHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjksIHVybDMwKSwgdGVzdFZlY3RvcjI5MzApOwogICAgIAogICAgIFVSTCB1cmwz
MSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnPz0/Il9zKTsKICAgICBVUkwgdXJs
MzIgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz0/Il9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjMxMzIge3siIiwgIj8ifX07
CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMy
IHsgeyAiIl9zLCAiPyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1l
dGVycyh1cmwzMSwgdXJsMzIpLCB0ZXN0VmVjdG9yMzEzMik7CiAgICAgCiAgICAgVVJMIHVybDI1
ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz0/Il9zKTsKICAgICBVUkwgdXJs
MjYgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy89PyJfcyk7Ci0gICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyNTI2IHt7IiIsICI/In19
OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUy
NiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnModXJsMjUsIHVybDI2KSwgdGVzdFZlY3RvcjI1MjYpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAppbmRleCAyNTZhOWU0MDYwYzczYTUwMDFkMmE5NWNi
ZTMyODA0OTk0MzU1NTYzLi5hMjJlYjIzY2NiZjcyNzA5NDc3YjhjZTU5MGNjYzIwNDQ5YjVhMDk0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKQEAgLTg5NSw5ICs4
OTUsOSBAQCBURVNUKFdURl9WZWN0b3IsIE1hcExhbWJkYU1vdmUpCiBURVNUKFdURl9WZWN0b3Is
IE1hcEZyb21IYXNoTWFwKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcDsKLSAg
ICBtYXAuc2V0KFN0cmluZyB7ICJrMSIgfSwgU3RyaW5nIHsgInYxIiB9KTsKLSAgICBtYXAuc2V0
KFN0cmluZyB7ICJrMiIgfSwgU3RyaW5nIHsgInYyIiB9KTsKLSAgICBtYXAuc2V0KFN0cmluZyB7
ICJrMyIgfSwgU3RyaW5nIHsgInYzIiB9KTsKKyAgICBtYXAuc2V0KCJrMSJfcywgInYxIl9zKTsK
KyAgICBtYXAuc2V0KCJrMiJfcywgInYyIl9zKTsKKyAgICBtYXAuc2V0KCJrMyJfcywgInYzIl9z
KTsKIAogICAgIGF1dG8gbWFwcGVkID0gV1RGOjptYXAobWFwLCBbJl0gKEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4mIHBhaXIpIC0+IFN0cmluZyB7CiAgICAgICAgIHJldHVybiBwYWlyLnZh
bHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGU3RyaW5n
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKaW5kZXgg
YjkzMzRkNDVmYmRkNTAyNzBmMjFmNjVhMTBmY2JmM2IyYTRjNWIxYS4uNWIyMTcyZWMwMGI3NzRm
NGZmOTEyNWFkNTFjNTVkZWI3ZDIzNmIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV1RGU3RyaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9XVEZTdHJpbmcuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgVEVTVChXVEYsIFN0cmluZ0Ny
ZWF0aW9uRnJvbUxpdGVyYWwpCiAgICAgRVhQRUNUX0VRKHN0cmxlbigiRXhwbGljaXQgY29uc3Ry
dWN0aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJLmxlbmd0aCgpKTsKICAg
ICBFWFBFQ1RfRVEoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiLCBzdHJpbmdGcm9tTGl0
ZXJhbFZpYUFTQ0lJKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJ
LmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24g
c3ludGF4IiksIHN0cmluZ0Zyb21MaXRlcmFsVmlhQVNDSUkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoIkV4cGxpY2l0IGNvbnN0cnVjdGlvbiBzeW50YXgiX3MpLCBzdHJpbmdGcm9tTGl0ZXJhbFZp
YUFTQ0lJKTsKIAogICAgIFN0cmluZyBzdHJpbmdGcm9tTGl0ZXJhbCA9ICJTdHJpbmcgTGl0ZXJh
bCJfc3RyOwogICAgIEVYUEVDVF9FUShzdHJsZW4oIlN0cmluZyBMaXRlcmFsIiksIHN0cmluZ0Zy
b21MaXRlcmFsLmxlbmd0aCgpKTsKICAgICBFWFBFQ1RfRVEoIlN0cmluZyBMaXRlcmFsIiwgc3Ry
aW5nRnJvbUxpdGVyYWwpOwogICAgIEVYUEVDVF9UUlVFKHN0cmluZ0Zyb21MaXRlcmFsLmlzOEJp
dCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJpbmdGcm9t
TGl0ZXJhbCk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiX3MpLCBzdHJp
bmdGcm9tTGl0ZXJhbCk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdBU0NJSSkKQEAgLTcwLDcgKzcw
LDcgQEAgVEVTVChXVEYsIFN0cmluZ1N0YXJ0c1dpdGhFbXB0eVZzTnVsbCkKIHsKICAgICBTdHJp
bmcgbnVsbFN0cmluZzsKICAgICBTdHJpbmcgZW1wdHlTdHJpbmcgPSBXVEY6OmVtcHR5U3RyaW5n
KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogCiAgICAgRVhQRUNUX1RSVUUoc3Ry
aW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChudWxsU3RyaW5nKSk7CiAgICAgRVhQRUNUX1RS
VUUoc3RyaW5nV2l0aENoYXJhY3RlcnMuc3RhcnRzV2l0aChlbXB0eVN0cmluZykpOwpAQCAtMjMx
LDcgKzIzMSw3IEBAIFRFU1QoV1RGLCBTdHJpbmdOdW1iZXJJbnRNaW4pCiAgICAgc3RkOjpzdHJp
bmcgZXhwZWN0ZWRTdHJpbmc7CiAgICAgc3RyaW5nU3RyZWFtID4+IGV4cGVjdGVkU3RyaW5nOwog
Ci0gICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigp
KSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0ID09IFN0cmluZzo6ZnJvbUxhdGluMShleHBlY3Rl
ZFN0cmluZy5jX3N0cigpKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdSZXBsYWNlV2l0aExpdGVy
YWwpCkBAIC0yOTMsNTEgKzI5Myw1MSBAQCBURVNUKFdURiwgU3RyaW5nVG9Eb3VibGUpCiAgICAg
RVhQRUNUX0VRKDAuMCwgZW1wdHlTdHJpbmcoKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1Rf
RkFMU0Uob2spOwogCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoKSk7
Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCIwIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQ
RUNUX0VRKDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4w
LCBTdHJpbmcoIjAiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAot
ICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0
cmluZygiMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxIl9z
KS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7CiAKICAgICAvLyBmYWlsIGlm
IHdlIHNlZSBsZWFkaW5nIGp1bmsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIikudG9E
b3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIpLnRvRG91YmxlKCZvaykp
OworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVY
UEVDVF9FUSgwLjAsIFN0cmluZygieDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9G
QUxTRShvayk7CiAKICAgICAvLyBzdWNjZWVkIGlmIHdlIHNlZSBsZWFkaW5nIHNwYWNlcwotICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiIDEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEo
MS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoJm9rKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3Ry
aW5nKCIgMSJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIgMSJf
cykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gaWdub3Jl
IHRyYWlsaW5nIGp1bmssIGJ1dCByZXR1cm4gZmFsc2UgZm9yICJvayIKICAgICAvLyBGSVhNRTog
VGhpcyBpcyBhbiBpbmNvbnNpc3RlbmN5IHdpdGggdG9JbnQsIHdoaWNoIGFsd2F5cyBndWFyYW50
ZWVzCiAgICAgLy8gaXQgd2lsbCByZXR1cm4gMCBpZiBpdCdzIGFsc28gZ29pbmcgdG8gcmV0dXJu
IGZhbHNlIGZvciBvay4KLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4IikudG9Eb3VibGUo
KSk7Ci0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9F
USgxLjAsIFN0cmluZygiMXgiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShv
ayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMsIG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNo
IGFzICJpbmZpbml0eSIKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5IikudG9E
b3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIpLnRvRG91Ymxl
KCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91Ymxl
KCkpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiX3MpLnRvRG91YmxlKCZv
aykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiAKICAgICAvLyBwYXJzZSBvbmx5IG51bWJlcnMs
IG5vdCBzcGVjaWFsIHZhbHVlcyBzdWNoIGFzICJuYW4iCi0gICAgRVhQRUNUX0VRKDAuMCwgU3Ry
aW5nKCJuYW4iKS50b0RvdWJsZSgpKTsKLSAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiIp
LnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygibmFuIl9zKS50b0Rv
dWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcykudG9Eb3VibGUoJm9r
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKG9rKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ2hhc0luZml4
U3RhcnRpbmdBdCkKIHsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5pczhCaXQoKSk7
Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZSIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJV
RShTdHJpbmcoInN0IikuaXM4Qml0KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIp
Lmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDApKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
U3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0KFN0cmluZygiVGUiKSwgMikpOwotICAg
IEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoInN0
IiksIDIpKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGlu
Z0F0KFN0cmluZygiU1QiKSwgMikpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcyku
aXM4Qml0KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiX3MpLmlzOEJpdCgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShTdHJpbmcoInN0Il9zKS5pczhCaXQoKSk7CisgICAgRVhQRUNUX1RSVUUo
U3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMikp
OworICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJz
dCJfcywgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3Rh
cnRpbmdBdCgiU1QiX3MsIDIpKTsKIAogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4
KCLkuK3lm70iKS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgo
IuS4rSIpLmlzOEJpdCgpKTsKQEAgLTM0NiwxMyArMzQ2LDEzIEBAIFRFU1QoV1RGLCBTdHJpbmdo
YXNJbmZpeFN0YXJ0aW5nQXQpCiAgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6ZnJvbVVURjgoIuS4
reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMSkpOwog
ICAgIEVYUEVDVF9UUlVFKFN0cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmc6OmZyb21VVEY4KCLlm70iKSwgMSkpOwogCi0gICAgRVhQRUNUX0ZBTFNFKFN0
cmluZzo6ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiks
IDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0IikuaGFzSW5maXhTdGFydGluZ0F0
KFN0cmluZzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZzo6
ZnJvbVVURjgoIuS4reWbvSIpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3MsIDApKTsKKyAgICBF
WFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpm
cm9tVVRGOCgi5LitIiksIDIpKTsKIH0KIAogVEVTVChXVEYsIFN0cmluZ0V4aXN0aW5nSGFzaCkK
IHsKLSAgICBTdHJpbmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCIpOworICAgIFN0cmluZyBz
dHJpbmcxKCJUZW1wbGF0ZSBMaXRlcmFsIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5p
c051bGwoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmluZzEuaW1wbCgpLT5oYXNIYXNoKCkpOwog
ICAgIHN0cmluZzEuaW1wbCgpLT5oYXNoKCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVChXVEYs
IFN0cmluZ0V4aXN0aW5nSGFzaCkKIAogVEVTVChXVEYsIFN0cmluZ1VuaWNvZGVFcXVhbFVDaGFy
QXJyYXkpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoImFiYyIpOworICAgIFN0cmluZyBzdHJpbmcx
KCJhYmMiX3MpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmlzTnVsbCgpKTsKICAgICBFWFBF
Q1RfVFJVRShzdHJpbmcxLmlzOEJpdCgpKTsKICAgICBVQ2hhciBhYltdID0geyAnYScsICdiJyB9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKaW5kZXggZmU1Y2U2OTQ5MGZjZjM0MzBiN2ExNGI3NTg1MmQ0YzhlYzAx
Yjg1OS4uYTk5NzEyMzRjM2MyMGNmMTQ1ZmU1NjcwZGJhYjk5ZTZkM2UwYzgxNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lv
bnMuY3BwCkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3Qs
IFBhcnNpbmdGYWlsdXJlcykKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiYXthLGJ9Il9zLCBDb250
ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwogCiAgICAg
Y29uc3QgY2hhciBub25BU0NJSVsyXSA9IHstMSwgJ1wwJ307Ci0gICAgdGVzdFBhdHRlcm5TdGF0
dXMoU3RyaW5nIHsgbm9uQVNDSUkgfSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNl
cjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKKyAgICB0ZXN0UGF0dGVyblN0YXR1cyhTdHJpbmc6
OmZyb21MYXRpbjEobm9uQVNDSUkpLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2Vy
OjpQYXJzZVN0YXR1czo6Tm9uQVNDSUkpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXHhmZiJf
cywgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFT
Q0lJKTsKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4XFxyXFxuIl9zLCBDb250ZW50
RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggOWUy
MGEzNDFkNWIxYzhlZDQ3ZWE0YmM2ZTJmNDIyODUyN2VhMTgwNy4uOWUzNWQ5NWJiNTFhMDliMDA4
NTM0ZDczMzVkODI4YTAwMGVjMmM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAgICAgCi1jb25zdCBT
dHJpbmcgRmlsZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiKTsKLWNvbnN0IFN0cmlu
ZyBGaWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0
aGUgdGVzdCIpOwotY29uc3QgU3RyaW5nIEZpbGVNb25pdG9yU2Vjb25kUmV2aXNlZERhdGEoIlRo
aXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0Iik7Citjb25zdCBTdHJpbmcgRmls
ZU1vbml0b3JUZXN0RGF0YSgiVGhpcyBpcyBhIHRlc3QiX3MpOworY29uc3QgU3RyaW5nIEZpbGVN
b25pdG9yUmV2aXNlZERhdGEoIlRoaXMgaXMgc29tZSBjaGFuZ2VkIHRleHQgZm9yIHRoZSB0ZXN0
Il9zKTsKK2NvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRhKCJUaGlzIGlz
IHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCJfcyk7CiAKIGNsYXNzIEZpbGVNb25pdG9y
VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKaW5kZXggNzcw
YjA3MjdmZGVmMjk1YjgyY2RiMDUyNzk0MzExMjI5OWFjYzlmMy4uNzIzZDU4OGFhNDljODdlMzY2
NGI0NmYzMTgwZGZkNzA3ZmMyNzVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5jcHAKQEAgLTc0LDkgKzc0LDkgQEAgVEVT
VChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IFwiXCIiX3MsCiAgICAgICAg
ICJhOiBcImFBP1x0IFwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpICgoYykpIl9zLAotICAg
ICAgICBTdHJpbmcgeyBub25BU0NJSUNvbW1lbnQgfSwKLSAgICAgICAgU3RyaW5nIHsgbm9uQVND
SUlRdW90ZWRQYWlySW5Db21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5vbkFTQ0lJUXVvdGVk
UGFpckluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJQ29tbWVu
dCksCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSVF1b3RlZFBhaXJJbkNvbW1l
bnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5RdW90
ZSksCiAgICAgfSk7CiAgICAgCiAgICAgc2hvdWxkQmVJbnZhbGlkKHsKQEAgLTk1LDcgKzk1LDcg
QEAgVEVTVChIVFRQSGVhZGVyRmllbGQsIFBhcnNlcikKICAgICAgICAgImE6IChcYSkiX3MsCiAg
ICAgICAgICJhOiBcIlxhXCIiX3MsCiAgICAgICAgICJhOiBcImFcIiAoYil9KChjKSkiX3MsCi0g
ICAgICAgIFN0cmluZyB7IGRlbEluUXVvdGUgfSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4x
KGRlbEluUXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlY29tZSh7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAx
NDcxOTAwMGRlMWQzZTY0MGM3Y2NjZGU2Mjk0M2Y0YTRmNTE1MDUxLi41NmE1OWYyZGE5ZTVhODA5
ZDFjNzNkNzU3Y2EwZTkxM2MyOTEwODM3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNUKEtl
eWVkQ29kaW5nLCBTZXRBbmRHZXREb3VibGUpCiAKIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdl
dFN0cmluZykKIHsKLSAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFsdWUoJldlYkNvcmU6Oktl
eWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVT
dHJpbmcsIFN0cmluZygiV2ViS2l0IikpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0U2ltcGxlVmFs
dWUoJldlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5jb2RlU3RyaW5nLCAmV2ViQ29yZTo6S2V5ZWRE
ZWNvZGVyOjpkZWNvZGVTdHJpbmcsIFN0cmluZygiV2ViS2l0Il9zKSkpOwogfQogCiBURVNUKEtl
eWVkQ29kaW5nLCBHZXROb25FeGlzdGluZ1JlY29yZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKaW5kZXggYTdmYTQ0MzJjYTc4ZGFk
ZmFhMjcxMTA4NWQ1NDk1ZTM5YzFjZDk0ZC4uMGFjOTA0ZGQwZTMxZDUzZTI4ZGEwNmEzZGZjYmNh
NDVkZmNiZTk5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1YmxpY1N1ZmZpeC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1B1YmxpY1N1ZmZpeC5jcHAKQEAgLTE1NywzMCArMTU3LDMwIEBAIFRFU1RfRihQdWJsaWNTdWZm
aXgsIFRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4pCiAgICAgRVhQRUNUX0VRKFN0cmluZyh1
dGYxNlN0cmluZyh1ImV4YW1wbGUuXHU2ODAzXHU2NzI4LmpwIikpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAiKSkpOwog
ICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJp
bmcoKSkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20udGVzdC5jb20i
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJjb20uY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy5jb20uY29t
Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC5jby51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVz
dC5jby51ayJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIiksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oImJsLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiYmwu
dWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC54bi0temYwYW82NGEudHciKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBF
Q1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKCJ3d3cudGVzdC54bi0temYwYW82NGEudHciX3MpKTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIxMjcuMC4wLjEiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAu
MC4xIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tLnRlc3QuY29t
Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKCJzdWJkb21haW4udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJjb20uY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LmNv
bS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIl9zKSwgdG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShT
dHJpbmcoInRlc3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJzdWJk
b21haW4udGVzdC5jby51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJibC51ayJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFp
bi5ibC51ayJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3
Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigidGVzdC54bi0temYwYW82NGEudHci
X3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBhbzY0YS50dyJfcyksIHRv
cFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSJfcyksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oIjEyNy4wLjAuMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmco
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1h
c2RmLnRlc3QuY29tIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygicjQtLS1hc2RmLmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CisgICAg
RVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJyNC0t
LWFzZGYuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigicjQtLS1hc2RmLmNv
bSJfcykpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigicjQtLS1hc2RmIl9zKSk7CiAgICAgRVhQRUNUX0VRKHV0ZjE2U3RyaW5nKGJpZGlyZWN0
aW9uYWxEb21haW4pLCB1dGYxNlN0cmluZyhiaWRpcmVjdGlvbmFsRG9tYWluKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIp
LCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJTVUIuZE9tYWluLkV4YW1QbGUuY29tIl9z
KSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRy
b2xsZWREb21haW4oImxvY2FsaG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2Fs
aG9zdCIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJMb2NhbEhvc3QiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bigiw6XDpMO2Il9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiw4XDhMOWIiksIHRvcFByaXZh
dGVseUNvbnRyb2xsZWREb21haW4oIsOFw4TDliJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmco
InRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIi50ZXN0LmNvbSJfcykp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbigiRXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJl
eGFtcGxlLmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5kT21haW4u
RXhhbVBsZS5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJsb2NhbGhvc3QiX3MpKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJsb2NhbGhvc3QiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJM
b2NhbEhvc3QiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nOjpmcm9tTGF0aW4xKCLDpcOkw7Yi
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw6XDpMO2Il9zKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZzo6ZnJvbUxhdGluMSgiw4XDhMOWIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oIsOFw4TDliJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwg
dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNU
X0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0
YWJhc2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFz
ZS5jcHAKaW5kZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYy
NDBhMzUzMGYxNGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0
MzIsOCBAQCBURVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25w
cmludGYoc2NvcGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8l
ZCIsIGkpOwogICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3Bp
Y18lZCIsIGkpOwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsK
LSAgICAgICAgICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAg
ICByZWNvcmQuc2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAg
cmVjb3JkLnRvcGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAg
ZGF0YWJhc2UuaW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAg
ICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5
NzEyOTJmYzFjYzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1
Y2ZmM2JlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
aGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
aGFyZWRCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKIAogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVu
dHNPZk1pc3NpbmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBh
dXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmlu
Zygibm90X2V4aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQog
CkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3Jl
YXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNT
RVJUX05PVF9OVUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0g
c3RybGVuKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9
PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgp
KSk7CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygp
LT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5j
b2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRl
eHRFbmNvZGluZy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRh
OWQ3My4uNGQyN2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRl
eHRFbmNvZGluZy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVu
Y29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1
Imh0dHA6Ly9ob3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYl
OTglOEQiX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hv
c3QvPyVDMyU5RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFs
dWVGb3JTdXJyb2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3Ry
aW5nKCJsYXRpbjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsK
ICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRp
bjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAs
ICIvIl9zLCAicXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDov
L2hvc3QvP3F1ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8v
aG9zdC8/cXVlcnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlT
dHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJo
dHRwOi8vaG9zdC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVl
cnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9z
dC8/cXVlcnkiX3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVu
Y29kaW5nVGVzdCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1
ZXJ5Il9zLCAmdW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJob3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imh0dHA6Ly9ob3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVu
cmVjb2duaXplZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9z
dCJfcywgMCwgIi8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9z
dC8/Il9zfSk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04
ODU5LTEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsK
ICAgICBTdHJpbmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4
NDUxLCAnXDAnfSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwg
d2l0aFVtbGF1dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksICJob3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVt
cHR5U3RyaW5nKCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAg
ICBjaGVja1VSTChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAm
aXNvODg1OTEsIHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJf
cywgMCwgIi9wYXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAi
d3NzOi8vaG9zdC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAppbmRleCAy
ZGQ3ZTRhZTdhMDFjMjllZjE0YmU4OWZlZGFiMjg1ZDk3NmY5ODAzLi4xYTViNWQ2YWQ4ZGQxNzU4
OTY4OTk0NGJkYmM5NDYzNjgzN2U4MTY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcApAQCAtMzQsNyArMzQsNyBAQCBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZv
clVSTEhhc0Nocm9tZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5n
IHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKCBTdHJpbmcgeyB1cmwgfSkp
OworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJp
bmc6OmZyb21MYXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFp
bnMoIkNocm9tZSIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiU2FmYXJp
IikpOwpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxI
YXNDaHJvbWVCcm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9pZCBhc3Nl
cnRVc2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkK
IHsKLSAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3Ry
aW5nIHsgdXJsIH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZv
clVSTChVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9GQUxTRSh1
YVN0cmluZy5jb250YWlucygiQ2hyb21lIikpOwogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5j
b250YWlucygiU2FmYXJpIikpOwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRV
c2VyQWdlbnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIAog
c3RhdGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25z
dCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRG
b3JVUkwoVVJMKFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRh
cmRVc2VyQWdlbnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAKICAgICBF
WFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiTWFjaW50b3NoIikpOwogICAgIEVYUEVDVF9U
UlVFKHVhU3RyaW5nLmNvbnRhaW5zKCJNYWMgT1MgWCIpKTsKQEAgLTcyLDcgKzcyLDcgQEAgc3Rh
dGljIHZvaWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25zdCBj
aGFyKiB1cmwpCiAvLyB0aGF0IHRoZSBzdGFuZGFyZCB1c2VyIGFnZW50IHNob3VsZCBiZSB1c2Vk
LikKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0VtcHR5UXVpcmsoY29uc3Qg
Y2hhciogdXJsKQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9y
VVJMKFVSTChTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJk
VXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogICAgIEVYUEVD
VF9GQUxTRSh1YVN0cmluZy5pc051bGwoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3Qu
bW0KaW5kZXggNzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2Vm
NDE5NGIwNjUxZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tl
clRlc3QubW0KQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9y
aWdpbikKICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidz
IGluZm9ybWF0aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMg
dGFibGVzLCBhbmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcg
KndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShA
IldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FM
RGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFi
YXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRw
cyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRh
YmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAv
LyBidXQgbm90IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1h
dGlvbiBzaG91bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJp
bmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9y
eShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGly
ZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2Vi
U1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRh
dGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJo
dHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChE
YXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQog
ICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24g
ZnJvbSBlaXRoZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAg
IE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlE
aXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdl
YlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFj
a2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJh
c2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBA
IFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRh
YmFzZXNUYWJsZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92
ZWQgZnJvbSB0aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3Vs
ZCBiZSBkZWxldGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0g
RmlsZVN5c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7Cisg
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgp
OwogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJf
cywgNDQzKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRl
RGF0YWJhc2UpCiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0
aW9uLCB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFu
ZCB0aGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxl
LgogICAgIE5TU3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1w
b3JhcnlEaXJlY3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoKHdlYlNRTERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJh
c2VUcmFja2VyPiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRo
RGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5E
YXRhIG9yaWdpbigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMx
NCw3IEBAIFRFU1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURv
ZXNOb3RFeGlzdCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUg
YSBkYXRhYmFzZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQg
c3RpbGwgcmVtb3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMg
dGFibGUuCiAgICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4
IDExYjlkNjg2NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1
M2YyYWMwM2I1YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0
YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04w
NnI0M2FuUXFaeVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAg
ICAib0Rka0tGOGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZT
L1ZhSGk0OHQreiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2
Z2ZKaUxuMDVUejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2
NjlRdmFWOXoiKTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwog
CiAgICAgU3RyaW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0ND
UUQrUVkxSlJuTTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAt
MTczLDcgKzE3Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5Migp
CiAgICAgIjQ2aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JE
MXhoOWFzZGpnMkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdt
MnI2eXQyajloQXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1
NjFSVDVnQXFBdi9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hI
YnhLTUczUmt2OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92
MXQ4PSJfcyk7CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkUHJpdmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVj
b2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2Ez
ZDUyNDgwYzk0ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uNmFmNGU4OGE4MDJlOWE1MzRiNjg4
ZjUzYWU2ODBkNmMxNWM4NWU0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3
IEBAIHN0YXRpYyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9r
ZW5TaWduaW5nUGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBF
Q1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCBy
ZXF1ZXN0Mi5zaXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0
MlN0cmluZyA9IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25p
bmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3Ry
aW5nKCJkZXN0aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNl
ID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcykgOiBTdHJpbmcoImRlc3RpbmF0
aW9uX3VubGlua2FibGVfdG9rZW4iX3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBz
dGFydCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGVuZCA9IHJlcXVlc3QyU3RyaW5nLmZpbmQoJyInLCBzdGFydCk7CkBAIC0zMjAsNyArMzIwLDcg
QEAgc3RhdGljIHZvaWQgc2lnblVubGlua2FibGVUb2tlbkFuZFNlbmRTZWNyZXRUb2tlbihUb2tl
blNpZ25pbmdQYXJ0eSBzaWduaW5nUGFydHkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gcmVxdWVzdDRTdHJpbmcgPSBTdHJpbmcocmVxdWVzdDQuZGF0YSgp
LCByZXF1ZXN0NC5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJj
ZSA/IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbiIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9z
ZWNyZXRfdG9rZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3Ry
aW5nKCJzb3VyY2Vfc2VjcmV0X3Rva2VuIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25fc2VjcmV0
X3Rva2VuIl9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IHN0YXJ0ID0gcmVxdWVzdDRTdHJpbmcuZmluZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGtleS5sZW5ndGgoKSArIDM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBlbmQgPSByZXF1ZXN0NFN0cmluZy5m
aW5kKCciJywgc3RhcnQpOwpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyB2b2lkIHNpZ25Vbmxp
bmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5nUGFydHkgc2lnbmluZ1Bh
cnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0b2tlblZl
Y3RvciA9IGJhc2U2NFVSTERlY29kZSh0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byB0b2tlbkRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOnRva2VuVmVjdG9yLT5kYXRhKCkgbGVuZ3RoOnRva2VuVmVjdG9yLT5zaXpl
KCldKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHNp
Z25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vf
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpIDogU3RyaW5nKCJkZXN0aW5hdGlvbl9zZWNyZXRfdG9r
ZW5fc2lnbmF0dXJlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a2V5ID0gc2lnbmluZ1BhcnR5ID09IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyBTdHJpbmco
InNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zKSA6IFN0cmluZygiZGVzdGluYXRpb25f
c2VjcmV0X3Rva2VuX3NpZ25hdHVyZSJfcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0
cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5k
ZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3Yzli
YzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRl
QmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmln
aW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6
IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIq
IGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmln
aW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVj
dCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFT
Q0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAs
IElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVy
U2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VI
ZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0
bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291
cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOwor
ICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJf
cywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlv
bkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAi
dGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5h
dGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRl
c3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGlu
YXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
RW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRl
c3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRl
c3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RG
TW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBz
ZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25z
ZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4
IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNl
Q09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VT
aG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNl
Q09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAs
ICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAi
c2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNP
RVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0g
InJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5h
dGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91
bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3
ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3Vy
Y2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7
IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVw
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJf
cywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVz
ZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUg
cmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVz
ZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVx
dWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAy
MTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAg
ICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAg
IGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwg
InRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4
dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsK
LSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29u
dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RX
b3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRp
b24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFs
aXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVx
dWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNl
KCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgw
ZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1l
W10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZy
YW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIg
YXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJh
bWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJG
cmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2Ny
aXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9
OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+
IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0
dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCmluZGV4
IDA1NDA1NTM3YTc1NzQ4ZDBmZWZmOGRmNThkNDY1MDZiMDZkMjE1YWUuLmQwMjBkNmU4ZWM4N2E3
MzU3MDRhZjVmNWJmMmJhODI0ZmRmYjhkNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qo
Y2VydGlmaWNhdGUpKTsKICAgICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlOwogICAg
ICAgICBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsKLSAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJM
KFN0cmluZyB7IGZhaWxpbmdVUkkgfSk7CisgICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTChTdHJp
bmc6OmZyb21MYXRpbjEoZmFpbGluZ1VSSSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RV
SUNsaWVudC5jcHAKaW5kZXggYjdjMWNjMWM1YzUzYjk3MDZlZGQ0YmM0Zjc3MmNhMjk2M2QxMzQy
Zi4uZDg1NTA4YTVkMzJlNmE3NzA1YzMwZTdlZWU5ODZhODgxZTE0MDRkZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAK
QEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCB3aW5kb3dQcm9w
ZXJ0aWVzTm90aWZ5Q2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqIHBhcmFtU3BlYywgVUlD
bGllbnRUZXN0KiB0ZXN0KQogICAgIHsKLSAgICAgICAgdGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVz
Q2hhbmdlZC5hZGQoU3RyaW5nIHsgZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBhcmFtU3BlYykgfSk7
CisgICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0cmluZzo6ZnJv
bUxhdGluMShnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSkpOwogICAgIH0KIAogICAg
IHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB2aWV3Q3JlYXRlQ2FsbGJhY2soV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbiwgVUlDbGllbnRUZXN0
KiB0ZXN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5kZXggYzU2OTAyYTIyOTcwNzIyZDNjYzExNmJi
YTMxMGRkYjZiNDNkZTg5Yi4uN2RlZDY2Y2U2NmRjNWE0YWEzMzIzNzEwOTBhMGE0OTBlOThlMzc1
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvblBhZ2VJRChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
ICAgICAvLyBSZWdpc3RlciBhIGN1c3RvbSBVUkkgc2NoZW1lIHRvIHRlc3QgaGlzdG9yeSBuYXZp
Z2F0aW9uLgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKHRlc3Qt
Pm1fd2ViQ29udGV4dC5nZXQoKSwgImZvbyIsCiAgICAgICAgIFtdKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyKSB7Ci0gICAgICAgICAgICBVUkwgdXJsID0gVVJMKFN0
cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAg
ICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgICAgICAgICAgR1JlZlB0cjxHSW5w
dXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9u
ZXcoKSk7CiAgICAgICAgICAgICBjaGFyKiBodG1sID0gZ19zdHJkdXBfcHJpbnRmKCI8aHRtbD48
aGVhZD48dGl0bGU+JXM8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiIsIHVybC5o
b3N0KCkgPT0gImhvc3Q1IiA/ICJUaXRsZTUiIDogIlRpdGxlNiIpOwogICAgICAgICAgICAgZ19t
ZW1vcnlfaW5wdXRfc3RyZWFtX2FkZF9kYXRhKEdfTUVNT1JZX0lOUFVUX1NUUkVBTShpbnB1dFN0
cmVhbS5nZXQoKSksIGh0bWwsIHN0cmxlbihodG1sKSwgZ19mcmVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IGE0M2M5M2VhOTg0YzNhNmZiNWZiNDA5YTIwN2JjN2Y4NjU3M2NkN2Qu
LjMxMjA3OGY3Y2E0YWE5MDc5ZGI0NjgzMDk0ODA1ZWFiZWY5MjM4ZmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogU3RyaW5nIGdlbmVy
YXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKIHsKLSAgICBTdHJpbmcgYmFz
ZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIik7CisgICAgU3Ry
aW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Nzg5MCJfcyk7
CiAgICAgdW5zaWduZWQgYmFzZUxlbmd0aCA9IGJhc2VTdHJpbmcubGVuZ3RoKCk7CiAKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5
N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOTA5MmRlMDA0MjM3Y2U4ODY0MjVlYjdhMDAyNzI4Mjc4
NmM5ZDQ2NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJW
aWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0
ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3Ry
aW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3Mp
LCBTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pKTsKIAogICAgIGNvbnRleHRNZW51Q29weUxp
bmsod2ViVmlldy5nZXQoKSwgMSk7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFzdGVVUkwubW0KaW5kZXggYzE3YTYyODU3MWQyODkxNWZl
MmI5ZWY1MTE4NzIwNjM1YjBiODNhMy4uYTVmN2JiZjU3YjliMDc1MmVhNDM2NzQwNjg2NGUzYjQw
MDAxOTdiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmll
d0NhblBhc3RlVVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZp
ZXdDYW5QYXN0ZVVSTC5tbQpAQCAtNDYsNyArNDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2Vi
Vmlld0NhblBhc3RlVVJMKQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9N
SFRNTEFuY2hvckVsZW1lbnQgKilbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3I6QCJhIl07
CiAgICAgTlNTdHJpbmcgKnRleHQgPSBbYW5jaG9yIGhyZWZdOwogICAgIAotICAgIEVYUEVDVF9F
UShTdHJpbmcoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKSwgU3RyaW5nKHRleHQpKTsKKyAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl9zKSwgU3RyaW5nKHRleHQp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jh
c2gubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5tbQppbmRleCAzYTJmYWRlYTZhMDQyMjM1MmZkMjdjNzFjMGU2MTBh
MWIwYzk3OWFhLi5jNDNhZWNkMTg5ZTc2NDE4YWRiYWE2YzFhYTU0ZWE0YTljZWExYzFiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQpAQCAtNjQsNyArNjQsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTDooTlNVUkwgKilVUkwgZAogCiAtKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdl
IGluaXRpYXRlZEJ5RnJhbWU6KFdlYkZyYW1lICopZnJhbWUKIHsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJQQVNTIiksIFN0cmluZyhtZXNzYWdlKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiUEFT
UyJfcyksIFN0cmluZyhtZXNzYWdlKSk7CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0
MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFlNmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUx
NGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAg
LTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAg
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChIVFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7
ICJVcGdyYWRlIiwgIndlYnNvY2tldCIgfSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAi
VXBncmFkZSIgfSwKLSAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29j
a2V0QWNjZXB0VmFsdWUocmVxdWVzdCkgfQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndl
YnNvY2tldCJfcyB9LAorICAgICAgICAgICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3Mg
fSwKKyAgICAgICAgICAgIHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2Nl
cHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAgICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6Oklu
Y2x1ZGVDb250ZW50TGVuZ3RoOjpObyksIFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAg
ICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6
dGVzdENlcnRpZmljYXRlKCkKICAgICAicTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFE
T3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9n
SmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQ
Rm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95
NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5
OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9zKTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZp
Y2F0ZSA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBX
VEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNhdGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1
aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5
ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAg
InZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRL
eEo4dEFoMnUiCiAgICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZN
cXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZm
bDVSdz09Iik7CisgICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAog
ICAgIGF1dG8gZGVjb2RlZFByaXZhdGVLZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZh
dGVLZXkpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVy
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2
ZXIuY3BwCmluZGV4IDI4MDM0MTE0MGYwMmY4NGY3OTQ5NGVlYzRiN2UzNmIxMWMwOTlkODMuLjhk
ZmE0ZTIzZjRlNDkwMjUyYjM5YTRiNjY3ZmFiOTMyMjVjZGFjZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3Bw
CkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBDU3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNv
Y2tldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3QKIHsKICAgICBnX2Fzc2VydF9m
YWxzZShtX2Jhc2VXZWJTb2NrZXRVUkwuaXNOdWxsKCkpOwogICAgIGdfYXNzZXJ0X3RydWUocGF0
aCAmJiAqcGF0aCA9PSAnLycpOwotICAgIHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBT
dHJpbmcgeyBwYXRoICsgMSB9KS5zdHJpbmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGlu
ZyBzbGFzaC4KKyAgICByZXR1cm4gVVJMKG1fYmFzZVdlYlNvY2tldFVSTCwgU3RyaW5nOjpmcm9t
TGF0aW4xKHBhdGggKyAxKSkuc3RyaW5nKCkudXRmOCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcg
c2xhc2guCiB9CiAKIENTdHJpbmcgV2ViS2l0VGVzdFNlcnZlcjo6Z2V0VVJJRm9yUGF0aChjb25z
dCBjaGFyKiBwYXRoKSBjb25zdAogewotICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmcg
eyBwYXRoIH0pLnN0cmluZygpLnV0ZjgoKTsKKyAgICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3Ry
aW5nOjpmcm9tTGF0aW4xKHBhdGgpKS5zdHJpbmcoKS51dGY4KCk7CiB9CiAKIHVuc2lnbmVkIFdl
YktpdFRlc3RTZXJ2ZXI6OnBvcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMmE4ODUyNzE0YWVmZjFh
MjE5ZDE3ZGE1MmY4ZTU3ZTdlYjY1ZTkxOC4uNDJmYzBiNGYxM2MxNGFmNDY0OWM2Njg1MTIzZjM2
MTAxMGUyZmVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3Jp
cHRDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNj
cmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0xODUsMTEgKzE4NSwxMSBAQCBzdGF0aWMgUmVmPEpT
T046Ok9iamVjdD4gdG9KU09OT2JqZWN0KEdWYXJpYW50KiB2YXJpYW50KQogICAgIHdoaWxlIChn
X3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVyLCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7CiAgICAg
ICAgIGNvbnN0IEdWYXJpYW50VHlwZSogdHlwZSA9IGdfdmFyaWFudF9nZXRfdHlwZSh2YWx1ZSk7
CiAgICAgICAgIGlmICh0eXBlICYmIGdfdmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFO
VF9UWVBFX1ZBUkRJQ1QpKQotICAgICAgICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0KFN0cmlu
ZyB7IGtleSB9LCB0b0pTT05PYmplY3QodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3Qt
PnNldE9iamVjdChTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7
CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19W
QVJJQU5UX1RZUEVfU1RSSU5HKSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhT
dHJpbmcgeyBrZXkgfSwgU3RyaW5nIHsgZ192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxw
dHIpIH0pOworICAgICAgICAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZzo6ZnJvbUxh
dGluMShrZXkpLCBTdHJpbmc6OmZyb21MYXRpbjEoZ192YXJpYW50X2dldF9zdHJpbmcodmFsdWUs
IG51bGxwdHIpKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1
YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfRE9VQkxFKSkKLSAgICAgICAgICAgIGpzb25PYmplY3Qt
PnNldERvdWJsZShTdHJpbmcgeyBrZXkgfSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsK
KyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmc6OmZyb21MYXRpbjEoa2V5
KSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzb25P
YmplY3Q7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5j
cHAgYi9Ub29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJh
MGFlMzg2ODkzNzgzODYwZWRmYzg0MTUyNGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMy
YzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVy
L21haW4uY3BwCisrKyBiL1Rvb2xzL2xsZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAt
NTcsMTMgKzU3LDEzIEBAIGVudW0gY2xhc3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQg
dGVzdFN1bW1hcnlQcm92aWRlcnMoKQogewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07
CisgICAgU3RyaW5nIGFOdWxsU3RyaW5nIHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmlu
Z0ltcGwgPSBhTnVsbFN0cmluZy5pbXBsKCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7
ICIiIH07CisgICAgU3RyaW5nIGFuRW1wdHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1w
bCogYW5FbXB0eVN0cmluZ0ltcGwgPSBhbkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmlu
ZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vtw6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBT
dHJpbmc6OmZyb21MYXRpbjEoInLDqXN1bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3Ry
aW5nSW1wbCA9IGFuOEJpdFN0cmluZy5pbXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5n
ID0gdXRmMTZTdHJpbmcodSJcdTE2ODBDYXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457216</attachid>
            <date>2022-04-10 16:26:32 -0700</date>
            <delta_ts>2022-04-10 22:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238977-20220410162631.patch</filename>
            <type>text/plain</type>
            <size>226822</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ4NzM2OTI0ZTljNzI3YzY2NDQyMTZm
MjQzOTEwNDQxMDI5OGE2ZjQuLjkxMDc5MjNkOTA3YmRlOThmOWExMmM3ZTVjNDEzZTgzZDBiZmY5
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaW5pc2ggcG9ydGluZyBjb2RlIGJhc2UgdG8gU3RyaW5n
Ojpmcm9tTGF0aW4xKCkgYW5kIG1ha2UgU3RyaW5nKGNvbnN0IGNoYXIqKSBwcml2YXRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg5NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHd0Zi90ZXh0L1dURlN0
cmluZy5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAgIChX
VEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAqIHd0Zi91bml4L0xvZ2dpbmdVbml4LmNw
cDoKKyAgICAgICAgKFdURjo6bG9nTGV2ZWxTdHJpbmcpOgorCiAyMDIyLTA0LTA4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2FzdDw+
KCkgbWF5IGNhdXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOWQzODdkNThhNzY0YjI1ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uZWQwYjFjM2Vj
ZDNhNGE4MGM3NzBhZDMyYjM4NzkyZjRkNzRkNTUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
IEBACisyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRmluaXNoIHBvcnRpbmcgY29kZSBiYXNlIHRvIFN0cmluZzo6ZnJvbUxhdGluMSgpIGFuZCBt
YWtlIFN0cmluZyhjb25zdCBjaGFyKikgcHJpdmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4OTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
RGF0YUNoYW5uZWxIYW5kbGVyOjpjcmVhdGVEYXRhQ2hhbm5lbEV2ZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYUVuZHBvaW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZldGNoRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6c3RvcmVSZW1vdGVNTGluZUluZm8pOgorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlU3RyZWFtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlw
dGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYUVuZHBvaW50
Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjptaWQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZpbGxSVENTdGF0cyk6CisgICAgICAgIChXZWJDb3JlOjpmaWxs
UlRDUlRQU3RyZWFtU3RhdHMpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE91dGJvdW5kUlRQU3Ry
ZWFtU3RhdHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRW5jb2RpbmdQYXJh
bWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZh
dGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2Fwcyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TeXN0ZW1FdmVudHM6OlByb3RlY3Rpb25TeXN0ZW1F
dmVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5z
aW9uc0dMT3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uc0dMT3BlbkdMRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uc0dM
T3BlbkdMRVM6OmdldEV4dGVuc2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0U3RyaW5nKToKKwogMjAyMi0wNC0wOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gT3B0aW1pemUgdGhl
IHdoaXRlc3BhY2UgY2FjaGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKaW5kZXggZjI3OGMx
NTI5ZDIzNWZhY2EwOWVkOTNhOTNjYWE3N2U4YThmNjgxMC4uODY2NjllZDRlYWM1ZTEyODI4OTVl
NTE2MDZmMzk1MGRhZjk0ZDBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAy
Mi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlz
aCBwb3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJp
bmcoY29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246
OnBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcgY29uc3QpOgorICAgICAgICAqIFdlYkRyaXZlclNlcnZp
Y2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpydW4pOgorICAg
ICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVX
aXRoRXJyb3IpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpwcm9jZXNz
Q2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6bmV3U2Vzc2lvbik6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OmNv
bm5lY3RUb0Jyb3dzZXIpOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUGF1c2VBY3Rpb24p
OgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzTnVsbEFjdGlvbik6CisgICAgICAgIChXZWJE
cml2ZXI6OnByb2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9p
bnRlck1vdmVBY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpwcm9jZXNzUG9pbnRlckFjdGlv
bik6CisgICAgICAgIChXZWJEcml2ZXI6OnByb2Nlc3NXaGVlbEFjdGlvbik6CisgICAgICAgIChX
ZWJEcml2ZXI6OnByb2Nlc3NQb2ludGVyUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJEcml2ZXI6
OnByb2Nlc3NJbnB1dEFjdGlvblNlcXVlbmNlKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGVyZm9ybUFjdGlvbnMpOgorICAgICAgICAqIGd0ay9XZWJEcml2ZXJTZXJ2
aWNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpw
bGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKiB3cGUvV2ViRHJpdmVy
U2VydmljZVdQRS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnBs
YXRmb3JtQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyBjb25zdCk6CisKIDIwMjItMDQtMDUgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25zdCBj
aGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1Jl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggNzcwNDRjYWRlYzBiZTE2Y2EwODdm
ZTYzYjQ2ZWZkMWEzZjBhZjE4YS4uMTM1NWI2NGM3NDExZTUwMzM4MTIxNzIzZGQ5ODczYTYxMTNl
M2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGlzdGVu
ZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25zdCBj
aGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KQogICAgICAgICAgICAgOiBCYXNlQ29ubmVjdGlv
bihpZCkKLSAgICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAgLCBh
ZGRyZXNzIHsgU3RyaW5nOjpmcm9tTGF0aW4xKGFkZHJlc3MpIH0KICAgICAgICAgICAgICwgcG9y
dCB7IHBvcnQgfQogICAgICAgICAgICAgLCBsaXN0ZW5lciB7IGxpc3RlbmVyIH0KICAgICAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93
dGYvRGF0ZU1hdGguY3BwCmluZGV4IDAxOTc2ZTAzOTY4MmM0Njc3NjVlZjc3ZDU0OTI1ZGQ4NGE0
YjdkYTEuLmI1ZjIyODMwOGQxNjFiNmUxNmM5YzQ1YWJmODJiMTUyYjU3NmNjNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRl
TWF0aC5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBpbmxp
bmUgYm9vbCBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IGMKIAogLyog
Q29uc3RhbnRzICovCiAKLWNvbnN0IGNoYXIqIGNvbnN0IHdlZWtkYXlOYW1lWzddID0geyAiTW9u
IiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9OwotY29uc3QgY2hh
ciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJN
YXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIiB9Owot
Y29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5IiwgIkZlYnJ1
YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAiQXVndXN0Iiwg
IlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9OworY29uc3Qg
QVNDSUlMaXRlcmFsIHdlZWtkYXlOYW1lWzddID0geyAiTW9uIl9zLCAiVHVlIl9zLCAiV2VkIl9z
LCAiVGh1Il9zLCAiRnJpIl9zLCAiU2F0Il9zLCAiU3VuIl9zIH07Citjb25zdCBBU0NJSUxpdGVy
YWwgbW9udGhOYW1lWzEyXSA9IHsgIkphbiJfcywgIkZlYiJfcywgIk1hciJfcywgIkFwciJfcywg
Ik1heSJfcywgIkp1biJfcywgIkp1bCJfcywgIkF1ZyJfcywgIlNlcCJfcywgIk9jdCJfcywgIk5v
diJfcywgIkRlYyJfcyB9OworY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoRnVsbE5hbWVbMTJdID0g
eyAiSmFudWFyeSJfcywgIkZlYnJ1YXJ5Il9zLCAiTWFyY2giX3MsICJBcHJpbCJfcywgIk1heSJf
cywgIkp1bmUiX3MsICJKdWx5Il9zLCAiQXVndXN0Il9zLCAiU2VwdGVtYmVyIl9zLCAiT2N0b2Jl
ciJfcywgIk5vdmVtYmVyIl9zLCAiRGVjZW1iZXIiX3MgfTsKIAogLy8gRGF5IG9mIHllYXIgZm9y
IHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXggMCBpcyBKYW51YXJ5LCBh
bmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1sZWFwIHllYXJzLCB0aGVu
IGZvciBsZWFwIHllYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBi
L1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggMDdkZGYzODU0NjMzY2I1ZTRjYTk2Nzkz
NTljMDQ4ZjEzMzk1ZTRhYi4uMTc0ZTZjMDdiNmY1Y2Y0YmNmMDQ2OWYyMGY4Y2YwMjFiZWQyNTEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5oCkBAIC05Niw5ICs5Niw5IEBAIGlubGluZSBkb3VibGUganNDdXJyZW50
VGltZSgpCiAgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9j
aCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBjb25z
dCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUg
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZB
VEUgY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl07CitleHRlcm4gV1RGX0VYUE9S
VF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCB3ZWVrZGF5TmFtZVs3XTsKK2V4dGVybiBXVEZf
RVhQT1JUX1BSSVZBVEUgY29uc3QgQVNDSUlMaXRlcmFsIG1vbnRoTmFtZVsxMl07CitleHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0IEFTQ0lJTGl0ZXJhbCBtb250aEZ1bGxOYW1lWzEyXTsK
IGV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgaW50IGZpcnN0RGF5T2ZNb250aFsyXVsx
Ml07CiAKIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQuMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCmluZGV4IDQzYzRkYjcyMzgwNjg1YjMwYzBhMzY5ZmZlZjhj
ZjcyY2E3NTYxNTQuLjEzNmIyOTJiNGJlYjkyOGMzZjkxMWQwNTNmN2RiYjFiZTk3ZmI3NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaApAQCAtNjcsMTEgKzY3LDE1IEBAIHByaXZhdGU6
CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oQVNDSUlMaXRlcmFsIGEsIGNvbnN0IGNoYXIqIGIp
CiB7Ci0gICAgcmV0dXJuIGIgJiYgIXN0cmNtcChhLmNoYXJhY3RlcnMoKSwgYik7CisgICAgaWYg
KCFhIHx8ICFiKQorICAgICAgICByZXR1cm4gYS5jaGFyYWN0ZXJzKCkgPT0gYjsKKyAgICByZXR1
cm4gIXN0cmNtcChhLmNoYXJhY3RlcnMoKSwgYik7CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9y
PT0oQVNDSUlMaXRlcmFsIGEsIEFTQ0lJTGl0ZXJhbCBiKQogeworICAgIGlmICghYSB8fCAhYikK
KyAgICAgICAgcmV0dXJuIGEuY2hhcmFjdGVycygpID09IGIuY2hhcmFjdGVycygpOwogICAgIHJl
dHVybiAhc3RyY21wKGEuY2hhcmFjdGVycygpLCBiLmNoYXJhY3RlcnMoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oCmluZGV4IDAwM2VmYjdjMTIwNDU1MWVhZTI3NzY5N2Q5N2NiZTI1MDI2
NmUwNTAuLmI2NDk3MDk4MGFiZTNmM2M3OWI5NDJmYTA4MjY1NjYzY2U4MjliZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9XVEZTdHJpbmcuaApAQCAtNzYsMTQgKzc2LDkgQEAgcHVibGljOgogICAgIC8vIENvbnN0
cnVjdCBhIHN0cmluZyB3aXRoIFVURi0xNiBkYXRhLCBmcm9tIGEgbnVsbC10ZXJtaW5hdGVkIHNv
dXJjZS4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IFVDaGFyKik7CiAKLSAg
ICAvLyBDb25zdHJ1Y3QgYSBzdHJpbmcgd2l0aCBsYXRpbjEgZGF0YS4KKyAgICAvLyBDb25zdHJ1
Y3QgYSBzdHJpbmcgd2l0aCBMYXRpbi0xIGRhdGEuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0
cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCk7Ci0KLSAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZnJvbUxhdGlu
MSgpIC8gZnJvbVVURjgoKSAvIFN0cmluZyhBU0NJSUxpdGVyYWwpLgotICAgIC8vIEZJWE1FOiBN
YWtlIHByaXZhdGUgb25jZSBhbGwgdXNlcnMgaGF2ZSBiZWVuIHBvcnRlZC4KLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgZXhwbGljaXQgU3RyaW5nKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpOwotCiAg
ICAgQUxXQVlTX0lOTElORSBzdGF0aWMgU3RyaW5nIGZyb21MYXRpbjEoY29uc3QgY2hhciogY2hh
cmFjdGVycykgeyByZXR1cm4gU3RyaW5nIHsgY2hhcmFjdGVycyB9OyB9CiAKICAgICAvLyBDb25z
dHJ1Y3QgYSBzdHJpbmcgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU3RyaW5nSW1wbC4KQEAgLTM0
Nyw2ICszNDIsOSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJvb2wgYWxsb3dFbXB0eUVudHJp
ZXM+IFZlY3RvcjxTdHJpbmc+IHNwbGl0SW50ZXJuYWwoVUNoYXIgc2VwYXJhdG9yKSBjb25zdDsK
ICAgICB0ZW1wbGF0ZTxib29sIGFsbG93RW1wdHlFbnRyaWVzPiBWZWN0b3I8U3RyaW5nPiBzcGxp
dEludGVybmFsKFN0cmluZ1ZpZXcgc2VwYXJhdG9yKSBjb25zdDsKIAorICAgIC8vIFRoaXMgaXMg
aW50ZW50aW9uYWxseSBwcml2YXRlLiBVc2UgZnJvbUxhdGluMSgpIC8gZnJvbVVURjgoKSAvIFN0
cmluZyhBU0NJSUxpdGVyYWwpIGluc3RlYWQuCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxp
Y2l0IFN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKTsKKwogICAgIFJlZlB0cjxTdHJpbmdJ
bXBsPiBtX2ltcGw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1
YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXgg
YWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMi4uOGJlMmY2MWY3OWI1YzVh
OTc1Y2M1MTE5OGQxYjhlZTAyNDcyM2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4
LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIGFsd2F5cyB0aGUgc2Ft
ZSB2YWx1ZS4KIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Ci0gICAgU3RyaW5n
IGxvY2FsZURlZmF1bHQoc2V0bG9jYWxlKExDX0NUWVBFLCBudWxscHRyKSk7CisgICAgYXV0byBs
b2NhbGVEZWZhdWx0ID0gU3RyaW5nOjpmcm9tTGF0aW4xKHNldGxvY2FsZShMQ19DVFlQRSwgbnVs
bHB0cikpOwogICAgIGlmIChsb2NhbGVEZWZhdWx0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGxvY2FsZURlZmF1bHQsICJDIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShs
b2NhbGVEZWZhdWx0LCAiUE9TSVgiKSkKICAgICAgICAgcmV0dXJuICJlbi1VUyJfczsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA5OGJmNTY2Y2UyNWNhNWU2Y2YxZjQxOWQ0
MzA3NTIyYTkzNTFjNTQ0Li41NGQ4NmNmODZlOWZmODA4ZDM0ODRlYjYwNDgzNTE2ZTEyZTU3NjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMzksNyArMzksNyBAQCBTdHJp
bmcgbG9nTGV2ZWxTdHJpbmcoKQogICAgIFdURkxvZ0Fsd2F5cygiV0VCS0lUX0RFQlVHIGlzIG5v
dCBlbXB0eSwgYnV0IHRoaXMgaXMgYSByZWxlYXNlIGJ1aWxkLiBOb3RpY2UgdGhhdCBtYW55IGxv
ZyBtZXNzYWdlcyB3aWxsIG9ubHkgYXBwZWFyIGluIGEgZGVidWcgYnVpbGQuIik7CiAjZW5kaWYK
IAotICAgIHJldHVybiBTdHJpbmcgeyBsb2dFbnYgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
TGF0aW4xKGxvZ0Vudik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNo
YW5uZWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lckRhdGFDaGFubmVsSGFuZGxlci5jcHAKaW5kZXggMmQzMjhmNmFmZDVh
Mjg1NjFlOTljMGYxM2U0ZmM2NmI1MDY3Yjk0NS4uZDc3YmU3YmRiM2UxZWZkOTIxNzhhYWVlODhm
YTc0ODY4NmJjYTA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyRGF0YUNoYW5uZWxIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEYXRhQ2hh
bm5lbEhhbmRsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50
PiBHU3RyZWFtZXJEYXRhQ2hhbm5lbEhhbmRsZXI6OmNyZWF0ZURhdGFDaGFubmVsRXZlbnQoRG9j
CiAgICAgaW5pdC5vcmRlcmVkID0gb3JkZXJlZDsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1l
ID0gbWF4UGFja2V0TGlmZVRpbWU7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IG1heFJldHJh
bnNtaXRzOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wuZ2V0KCkpOworICAg
IGluaXQucHJvdG9jb2wgPSBTdHJpbmc6OmZyb21MYXRpbjEocHJvdG9jb2wuZ2V0KCkpOwogICAg
IGluaXQubmVnb3RpYXRlZCA9IG5lZ290aWF0ZWQ7CiAgICAgaW5pdC5pZCA9IGlkOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDI5ZTI1NTc2NGVh
MzVmMTI0ZTFjOWJkYTEzZjk4MzU5MGEwODEyYjcuLmUxNjQ3MGI4YTQyOWQzYTg1MmM0ZDdiYjFi
NjVmMWViNDNhMDI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9p
bnQuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWly
PFJUQ1NkcFR5cGUsIFN0cmluZz4+IGZldGNoRGVzY3JpcHRpb24oR3N0RWxlbWVudCoKIAogICAg
IEdVbmlxdWVQdHI8Y2hhcj4gc2RwU3RyaW5nKGdzdF9zZHBfbWVzc2FnZV9hc190ZXh0KGRlc2Ny
aXB0aW9uLT5zZHApKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNUKHdlYnJ0Y0JpbiwgIiVzLWRlc2Ny
aXB0aW9uIFNEUDogJXMiLCBuYW1lLCBzZHBTdHJpbmcuZ2V0KCkpOwotICAgIHJldHVybiB7IHsg
ZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nIHsg
c2RwU3RyaW5nLmdldCgpIH0gfSB9OworICAgIHJldHVybiB7IHsgZnJvbVNlc3Npb25EZXNjcmlw
dGlvblR5cGUoKmRlc2NyaXB0aW9uLmdldCgpKSwgU3RyaW5nOjpmcm9tTGF0aW4xKHNkcFN0cmlu
Zy5nZXQoKSkgfSB9OwogfQogCiBzdGF0aWMgR3N0V2ViUlRDU2lnbmFsaW5nU3RhdGUgZmV0Y2hT
aWduYWxpbmdTdGF0ZShHc3RFbGVtZW50KiB3ZWJydGNCaW4pCkBAIC00NTYsNyArNDU2LDcgQEAg
dm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBvaW50OjpzdG9yZVJlbW90ZU1MaW5lSW5mbyhHc3RTRFBN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAg
ICAgICBtX21lZGlhRm9yTWlkLnNldChTdHJpbmcgeyBtaWQgfSwgZ19zdHJfZXF1YWwobWVkaWFU
eXBlLCAiYXVkaW8iX3MpID8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CisgICAgICAgIG1fbWVkaWFGb3JNaWQuc2V0
KFN0cmluZzo6ZnJvbUxhdGluMShtaWQpLCBnX3N0cl9lcXVhbChtZWRpYVR5cGUsICJhdWRpbyJf
cykgPyBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvKTsKIAogICAgICAgICAvLyBodHRwczovL2dpdGxhYi5mcmVlZGVza3Rv
cC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC8tL21lcmdlX3JlcXVlc3RzLzE5MDcKICAg
ICAgICAgaWYgKHNkcE1lZGlhSGFzQXR0cmlidXRlS2V5KG1lZGlhLCAiaWNlLWxpdGUiKSkgewpA
QCAtNzMzLDcgKzczMyw3IEBAIHZvaWQgR1N0cmVhbWVyTWVkaWFFbmRwb2ludDo6YWRkUmVtb3Rl
U3RyZWFtKEdzdFBhZCogcGFkKQogICAgIGF1dG8gc2RwU3RyaW5nID0gbWFrZVN0cmluZyhzZHAu
Z2V0KCkpOwogCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbmFtZShnc3RfcGFkX2dldF9uYW1lKHBh
ZCkpOwotICAgIFN0cmluZyBsYWJlbChuYW1lLmdldCgpKTsKKyAgICBhdXRvIGxhYmVsID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKG5hbWUuZ2V0KCkpOwogICAgIGF1dG8ga2V5ID0gbWFrZVN0cmluZygi
bXNpZDoiKTsKICAgICBhdXRvIGxpbmVzID0gc2RwU3RyaW5nLnNwbGl0KCdcbicpOwogICAgIGZv
ciAoYXV0byYgbGluZSA6IGxpbmVzKSB7CkBAIC0xMDg1LDkgKzEwODUsOSBAQCB2b2lkIEdTdHJl
YW1lck1lZGlhRW5kcG9pbnQ6OmNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvblN1Y2NlZWRlZChHVW5p
cXVlUHRyPEdzdFdlYgogCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2RwKGdzdF9zZHBfbWVz
c2FnZV9hc190ZXh0KGRlc2NyaXB0aW9uLT5zZHApKTsKICAgICAgICAgaWYgKG1faXNJbml0aWF0
b3IpCi0gICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVPZmZlclN1Y2Nl
ZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmc6OmZyb21MYXRpbjEoc2RwLmdldCgp
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNy
ZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcgeyBzZHAuZ2V0KCkgfSk7CisgICAgICAgICAgICBt
X3BlZXJDb25uZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoU3RyaW5nOjpmcm9t
TGF0aW4xKHNkcC5nZXQoKSkpOwogICAgIH0pOwogfQogCkBAIC0xMTI1LDcgKzExMjUsNyBAQCB2
b2lkIEdTdHJlYW1lck1lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMoKQogICAgICAg
ICBpZiAoIXJlY2VpdmVyIHx8ICFtaWQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihXVEY6Om1ha2VV
bmlxdWU8R1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKGN1cnJlbnQpKSwg
bV9tZWRpYUZvck1pZC5nZXQoU3RyaW5nIHsgbWlkLmdldCgpIH0pKTsKKyAgICAgICAgbV9wZWVy
Q29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIoV1RGOjptYWtlVW5pcXVlPEdT
dHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShjdXJyZW50KSksIG1fbWVkaWFG
b3JNaWQuZ2V0KFN0cmluZzo6ZnJvbUxhdGluMShtaWQuZ2V0KCkpKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNw
cAppbmRleCBlNzc4ZjZkNGYwYzBiNDY3ODIzMGM2MmNkNjYwMmE4ZTljNjEzZmJhLi41YTkzMmIx
YjZjNjllZjVjZjE5OTZmYzM0N2ZkMmFkM2IyZWU1NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJSdHBUcmFuc2NlaXZl
ckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTc5LDcgKzc5LDcg
QEAgU3RyaW5nIEdTdHJlYW1lclJ0cFRyYW5zY2VpdmVyQmFja2VuZDo6bWlkKCkKIHsKICAgICBH
VW5pcXVlT3V0UHRyPGNoYXI+IG1pZDsKICAgICBnX29iamVjdF9nZXQobV9ydGNUcmFuc2NlaXZl
ci5nZXQoKSwgIm1pZCIsICZtaWQub3V0UHRyKCksIG51bGxwdHIpOwotICAgIHJldHVybiBTdHJp
bmcgeyBtaWQuZ2V0KCkgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKG1pZC5nZXQo
KSk7CiB9CiAKIHZvaWQgR1N0cmVhbWVyUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOjpzdG9wKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAppbmRleCBkY2Y3YWQx
ZThjNzA4YWFmY2VlNWM5MGYwNjkwMzQyMWVjNTFhZjA1Li5jNmMyZmI3NTUwOGE0MzJmNzc0ZWU2
OWE4YzY5Yzc5ODlhMWZiMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyU3RhdHND
b2xsZWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgc3RhdGljIGlubGluZSB2b2lkIGZpbGxS
VENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMmIHN0YXRzLCBjb25zdCBHc3RTdHJ1Y3R1cmUK
ICAgICBkb3VibGUgdGltZXN0YW1wOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF9kb3VibGUo
c3RydWN0dXJlLCAidGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCiAgICAgICAgIHN0YXRzLnRpbWVz
dGFtcCA9IHRpbWVzdGFtcDsKLSAgICBzdGF0cy5pZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVf
Z2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJpZCIpIH07CisgICAgc3RhdHMuaWQgPSBTdHJpbmc6OmZy
b21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgImlkIikpOwogfQog
CiBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJUQ1JUUFN0cmVhbVN0YXRzKFJUQ1N0YXRzUmVwb3J0
OjpSdHBTdHJlYW1TdGF0cyYgc3RhdHMsIGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ewogICAgIGZpbGxSVENTdGF0cyhzdGF0cywgc3RydWN0dXJlKTsKIAotICAgIHN0YXRzLnRyYW5z
cG9ydElkID0gU3RyaW5nIHsgZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInRy
YW5zcG9ydC1pZCIpIH07Ci0gICAgc3RhdHMuY29kZWNJZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1
cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpIH07CisgICAgc3RhdHMudHJhbnNw
b3J0SWQgPSBTdHJpbmc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVj
dHVyZSwgInRyYW5zcG9ydC1pZCIpKTsKKyAgICBzdGF0cy5jb2RlY0lkID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1Y3R1cmUsICJjb2RlYy1pZCIpKTsK
IAogICAgIHVuc2lnbmVkIHZhbHVlOwogICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50KHN0
cnVjdHVyZSwgInNzcmMiLCAmdmFsdWUpKQpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBmaWxsT3V0Ym91bmRSVFBTdHJlYW1TdGF0cyhSVENTdGF0c1JlcG9ydDo6T3V0Ym91
bmRSdHBTdHJlYW1TCiAgICAgICAgIHN0YXRzLm5hY2tDb3VudCA9IG5hY2tDb3VudDsKIAogICAg
IGlmIChjb25zdCBjaGFyKiByZW1vdGVJZCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0cmluZyhzdHJ1
Y3R1cmUsICJyZW1vdGUtaWQiKSkKLSAgICAgICAgc3RhdHMucmVtb3RlSWQgPSBTdHJpbmcgeyBy
ZW1vdGVJZCB9OworICAgICAgICBzdGF0cy5yZW1vdGVJZCA9IFN0cmluZzo6ZnJvbUxhdGluMShy
ZW1vdGVJZCk7CiAKICAgICAvLyBGSVhNRQogICAgIC8vIHN0YXRzLnRhcmdldEJpdHJhdGUgPQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCmluZGV4IDZhMTYzNmM2ZGRi
NmU2ZmI1OTVhOGM1ZDJmZTIwYmQ3Mzc0NjFhNDcuLmFlZWQyN2E0YTI1MWExNDI0YTZiOWFjNjM1
NTIwZjYzMjU2ZWM2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5j
cHAKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIFJUQ1J0cEVuY29kaW5nUGFyYW1l
dGVycyB0b1JUQ0VuY29kaW5nUGFyYW1ldGVycyhjb25zdCBHc3RTdHJ1Y3R1cgogICAgIGlmIChn
c3Rfc3RydWN0dXJlX2dldF91aW50NjQocnRjUGFyYW1ldGVycywgIm1heC1mcmFtZXJhdGUiLCAm
bWF4RnJhbWVyYXRlKSkKICAgICAgICAgcGFyYW1ldGVycy5tYXhGcmFtZXJhdGUgPSBtYXhGcmFt
ZXJhdGU7CiAKLSAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0cmluZyB7IGdzdF9zdHJ1Y3R1cmVfZ2V0
X3N0cmluZyhydGNQYXJhbWV0ZXJzLCAicmlkIikgfTsKKyAgICBwYXJhbWV0ZXJzLnJpZCA9IFN0
cmluZzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcocnRjUGFyYW1ldGVycywg
InJpZCIpKTsKIAogICAgIGRvdWJsZSBzY2FsZVJlc29sdXRpb25Eb3duQnk7CiAgICAgaWYgKGdz
dF9zdHJ1Y3R1cmVfZ2V0X2RvdWJsZShydGNQYXJhbWV0ZXJzLCAic2NhbGUtcmVzb2x1dGlvbi1k
b3duLWJ5IiwgJnNjYWxlUmVzb2x1dGlvbkRvd25CeSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGI1
ODZmYzdhYjU5NTQ5ODRkNzcxZmMzYTVhNWQ4NDkzYmYwMzZiZDMuLjc3M2Y2NzY0OGEzZDkwOGZi
YTAzNzNhNzk5ZjQyOTI4YTc3OTJkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xOTA0LDggKzE5
MDQsNyBAQCBHQ0dMZW51bSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKEdDR0xlbnVtIHRhcmdldCkKICAgICBjb25zdCBjaGFyKiByZWFzb24gPSAiZnJh
bWVidWZmZXIgaW5jb21wbGV0ZSI7CiAgICAgR0NHTGVudW0gcmVzdWx0ID0gdGFyZ2V0RnJhbWVi
dWZmZXItPmNoZWNrU3RhdHVzKCZyZWFzb24pOwogICAgIGlmIChyZXN1bHQgIT0gR3JhcGhpY3ND
b250ZXh0R0w6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICAgIFN0cmluZyBzdHIgPSAi
V2ViR0w6IGNoZWNrRnJhbWVidWZmZXJTdGF0dXM6IiArIFN0cmluZyhyZWFzb24pOwotICAgICAg
ICBwcmludFRvQ29uc29sZShNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHN0cik7CisgICAgICAgIHBy
aW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiV2ViR0w6IGNo
ZWNrRnJhbWVidWZmZXJTdGF0dXM6ICIsIHJlYXNvbikpOwogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIH0KICAgICByZXN1bHQgPSBtX2NvbnRleHQtPmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
dGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNl
TG9hZGVyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRl
clNvdXAuY3BwCmluZGV4IDNhZDM3OTkyOTFkMTdhZGZlMjNhMjQ2MTc4MjUyYzBkNjk4ZjJhYWQu
LmMxNTFkZmY1MjU5MGUzYmU5MjE3NTNmNDJhMDY3MjZkNzllNDhjZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtNTMsNyAr
NTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgR1Vu
aXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgICAgICBHUmVmUHRyPEdCeXRlcz4gYnl0ZXMg
PSBhZG9wdEdSZWYoc3RhdGljX2Nhc3Q8R0J5dGVzKj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVy
KHRhc2ssICZlcnJvci5vdXRQdHIoKSkpKTsKICAgICAgICAgaWYgKCFieXRlcykgewotICAgICAg
ICAgICAgbG9hZGVyLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19z
dHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHVybCwgU3RyaW5nOjpmcm9tVVRG
OChlcnJvci0+bWVzc2FnZSkpKTsKKyAgICAgICAgICAgIGxvYWRlci0+ZGlkRmFpbChSZXNvdXJj
ZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSksIGVycm9yLT5jb2RlLCB1cmwsIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpsb2FkR1Jlc291cmNlKCkKICAgICAgICAgY29uc3QgYXV0byogZGF0
YSA9IHN0YXRpY19jYXN0PGNvbnN0IGd1Y2hhcio+KGdfYnl0ZXNfZ2V0X2RhdGEoYnl0ZXMuZ2V0
KCksICZkYXRhU2l6ZSkpOwogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGZpbGVOYW1lKGdfcGF0
aF9nZXRfYmFzZW5hbWUodXJsLnBhdGgoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdVbmlx
dWVQdHI8Y2hhcj4gY29udGVudFR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MoZmlsZU5hbWUuZ2V0
KCksIGRhdGEsIGRhdGFTaXplLCBudWxscHRyKSk7Ci0gICAgICAgIFN0cmluZyBjb250ZW50VHlw
ZVN0cmluZyB7IGNvbnRlbnRUeXBlLmdldCgpIH07CisgICAgICAgIGF1dG8gY29udGVudFR5cGVT
dHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoY29udGVudFR5cGUuZ2V0KCkpOwogICAgICAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFU
eXBlKGNvbnRlbnRUeXBlU3RyaW5nKSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihkYXRhU2l6ZSks
IGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZVN0cmluZykudG9TdHJpbmco
KSB9OwogICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICBy
ZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dCgiT0siX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yQmFzZS5jcHAKaW5kZXggYzA3Y2NlNDg2YzdjNmM1YWVjMWIzNzY3OTcxNTgwYTkxNWRkNjQw
ZS4uYjVjMDQ1OWUxYzEwMDMyMmM1OTY1ODU2NTdhYWI4ZDViNjUxMjc3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC05Myw3ICs5Myw3IEBAIFN0cmluZyBOYXZpZ2F0
b3JCYXNlOjpwbGF0Zm9ybSgpIGNvbnN0CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VL
ZXk7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10gewogICAgICAgICBzdHJ1Y3QgdXRz
bmFtZSBvc25hbWU7Ci0gICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1Y3QodW5hbWUoJm9zbmFt
ZSkgPj0gMCA/IFN0cmluZyhvc25hbWUuc3lzbmFtZSkgKyAiICJfc3RyICsgU3RyaW5nKG9zbmFt
ZS5tYWNoaW5lKSA6IFN0cmluZygiIl9zKSk7CisgICAgICAgIHBsYXRmb3JtTmFtZS5jb25zdHJ1
Y3QodW5hbWUoJm9zbmFtZSkgPj0gMCA/IG1ha2VTdHJpbmcob3NuYW1lLnN5c25hbWUsICIgIiwg
b3NuYW1lLm1hY2hpbmUpIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHBs
YXRmb3JtTmFtZS0+aXNvbGF0ZWRDb3B5KCk7CiAjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwCmluZGV4IGM1ZGUxYjY4YjVjY2NhNGI4Yzk4NTNiMzM4YjQ5ODIxOGUxNDM4OWEu
LmIyOGE1YTRlOGY2Zjc2NTAyMTllNzIyMGFmMGI0NzQ4ZTIwMTdkNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAK
QEAgLTE4NiwxMyArMTg2LDEzIEBAIGJvb2wgQU5HTEVXZWJLaXRCcmlkZ2U6OmNvbXBpbGVTaGFk
ZXJTb3VyY2UoY29uc3QgY2hhciogc2hhZGVyU291cmNlLCBBTkdMRVNoYWRlCiAgICAgaWYgKCF2
YWxpZGF0ZVN1Y2Nlc3MpIHsKICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGxvZyA9IHNoOjpH
ZXRJbmZvTG9nKGNvbXBpbGVyKTsKICAgICAgICAgaWYgKGxvZy5sZW5ndGgoKSkKLSAgICAgICAg
ICAgIHNoYWRlclZhbGlkYXRpb25Mb2cgPSBTdHJpbmcgeyBsb2cuY19zdHIoKSB9OworICAgICAg
ICAgICAgc2hhZGVyVmFsaWRhdGlvbkxvZyA9IFN0cmluZzo6ZnJvbUxhdGluMShsb2cuY19zdHIo
KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyYgb2JqZWN0Q29kZSA9IHNoOjpHZXRPYmplY3RDb2RlKGNvbXBpbGVyKTsKICAgICBpZiAob2Jq
ZWN0Q29kZS5sZW5ndGgoKSkKLSAgICAgICAgdHJhbnNsYXRlZFNoYWRlclNvdXJjZSA9IFN0cmlu
ZyB7IG9iamVjdENvZGUuY19zdHIoKSB9OworICAgICAgICB0cmFuc2xhdGVkU2hhZGVyU291cmNl
ID0gU3RyaW5nOjpmcm9tTGF0aW4xKG9iamVjdENvZGUuY19zdHIoKSk7CiAgICAgCiAgICAgaWYg
KCFnZXRTeW1ib2xJbmZvKGNvbXBpbGVyLCBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFLCBz
eW1ib2xzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKaW5kZXggN2QwMDU3ZmMyOWQ2NjA3ZGNkNTdlYzJk
ZTc5MWMzN2E0NDZlZGQ4MS4uZTBmODAwNmNmMTk0ZTQxNjA5MGQxYmMxZmY0NzIyYTkzZTFiNDEx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3Bw
CkBAIC0xNzYsNyArMTc2LDcgQEAgdW5zaWduZWQgR0xDb250ZXh0Ojp2ZXJzaW9uKCkKICAgICBp
ZiAoIW1fdmVyc2lvbikgewogICAgICAgICAvLyBWZXJzaW9uIHN0cmluZyBjYW4gc3RhcnQgd2l0
aCB0aGUgdmVyc2lvbiBudW1iZXIgKGFsbCB2ZXJzaW9ucyBleGNlcHQgR0xFUyAxIGFuZCAyKSBv
ciB3aXRoCiAgICAgICAgIC8vICJPcGVuR0wiLiBEaWZmZXJlbnQgZmllbGRzIGluc2lkZSB0aGUg
dmVyc2lvbiBzdHJpbmcgYXJlIHNlcGFyYXRlZCBieSBzcGFjZXMuCi0gICAgICAgIFN0cmluZyB2
ZXJzaW9uU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xH
ZXRTdHJpbmcoR0xfVkVSU0lPTikpKTsKKyAgICAgICAgYXV0byB2ZXJzaW9uU3RyaW5nID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJp
bmcoR0xfVkVSU0lPTikpKTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVyc2lvblN0cmluZ0Nv
bXBvbmVudHMgPSB2ZXJzaW9uU3RyaW5nLnNwbGl0KCcgJyk7CiAKICAgICAgICAgVmVjdG9yPFN0
cmluZz4gdmVyc2lvbkRpZ2l0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IGZkOWY3OGU3ZDIxNGU4OTkwOGEwNjU4YWJkZjZlOTU3MDY5N2Zi
YjYuLjMyNDIwOTA2ODdmNzc4MWVlMGQzYjRkNmFmYzUwZWZmNGRmNjNhODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTIsNyArOTIsNyBA
QCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVDb25maWd1cmF0aW9uRnJv
bUNhcHMoKQogCiAjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMjAsIDApCiAgICAgR1VuaXF1ZVB0
cjxjaGFyPiBjb2RlYyhnc3RfY29kZWNfdXRpbHNfY2Fwc19nZXRfbWltZV9jb2RlYyhjYXBzLmdl
dCgpKSk7Ci0gICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZyB7IGNvZGVjLmdldCgpIH07
CisgICAgY29uZmlndXJhdGlvbi5jb2RlYyA9IFN0cmluZzo6ZnJvbUxhdGluMShjb2RlYy5nZXQo
KSk7CiAjZW5kaWYKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVy
Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJDb21tb24uY3BwCmluZGV4IDdhMzYyNjNmZTAxMTM0NDBlNTQ1NmMxOTJkOWExODQ1
MjljOTViOTguLmQ0MjBkNDgxMzkzM2I5ZjU5Y2ZjZmU3NGJlOGZjMzY3ZTRkM2E5OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJDb21tb24uY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgc3RhdGljIGdib29s
ZWFuIHBhcnNlR3N0U3RydWN0dXJlVmFsdWUoR1F1YXJrIGZpZWxkSWQsIGNvbnN0IEdWYWx1ZSog
dmFsdWUsIGdwb2kKIHsKICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBnc3RTdHJ1Y3R1cmVWYWx1
ZVRvSlNPTih2YWx1ZSkpIHsKICAgICAgICAgYXV0byogb2JqZWN0ID0gcmVpbnRlcnByZXRfY2Fz
dDxKU09OOjpPYmplY3QqPih1c2VyRGF0YSk7Ci0gICAgICAgIG9iamVjdC0+c2V0VmFsdWUoU3Ry
aW5nIHsgZ19xdWFya190b19zdHJpbmcoZmllbGRJZCkgfSwganNvblZhbHVlLT5yZWxlYXNlTm9u
TnVsbCgpKTsKKyAgICAgICAgb2JqZWN0LT5zZXRWYWx1ZShTdHJpbmc6OmZyb21MYXRpbjEoZ19x
dWFya190b19zdHJpbmcoZmllbGRJZCkpLCBqc29uVmFsdWUtPnJlbGVhc2VOb25OdWxsKCkpOwog
ICAgIH0KICAgICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lci5jcHAKaW5kZXggYmQ2YmU2ZjdhNjMwZTM2Y2M3YmYxNTg1MmI2MGUyMjFiMTY3
MjQ3NS4uNjdkNzBjYmNmNzIzMjNlMjA5MzkyNDBkNGQ0NzBjNDM4MTE2NjA2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBA
QCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6RWxlbWVudAogICAgIGlmIChzaG91bGRDaGVja0hhcmR3YXJlQ2xh
c3NpZmllciA9PSBDaGVja0hhcmR3YXJlQ2xhc3NpZmllcjo6WWVzKSB7CiAgICAgICAgIGZvciAo
R0xpc3QqIGZhY3RvcmllcyA9IGNhbmRpZGF0ZXM7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19s
aXN0X25leHQoZmFjdG9yaWVzKSkgewogICAgICAgICAgICAgYXV0byogZmFjdG9yeSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVudEZhY3RvcnkqPihmYWN0b3JpZXMtPmRhdGEpOwotICAgICAg
ICAgICAgU3RyaW5nIG1ldGFkYXRhIHsgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEo
ZmFjdG9yeSwgR1NUX0VMRU1FTlRfTUVUQURBVEFfS0xBU1MpIH07CisgICAgICAgICAgICBhdXRv
IG1ldGFkYXRhID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21l
dGFkYXRhKGZhY3RvcnksIEdTVF9FTEVNRU5UX01FVEFEQVRBX0tMQVNTKSk7CiAgICAgICAgICAg
ICBhdXRvIGNvbXBvbmVudHMgPSBtZXRhZGF0YS5zcGxpdCgnLycpOwogICAgICAgICAgICAgaWYg
KGNvbXBvbmVudHMuY29udGFpbnMoIkhhcmR3YXJlIikpIHsKICAgICAgICAgICAgICAgICBpc1Vz
aW5nSGFyZHdhcmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAppbmRleCBhYmQzNjI5NjJhNDM1NjA4MjIzM2NiMTRhOTkwN2Q5MDYzNGE2
ZGM3Li4wMWZlZmVhMzJkMjEzNmRmZDFlMWYzYzI1YjgxNjI2OTY5MGZiZDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzY1LDcgKzM2
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkKGNvbnN0IFVSTCYs
IGNvbnN0IENvbnRlbnRUeXBlJiwgTWVkaWFTb3VyCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKIHsKICAgICBtX3N0cmVh
bVByaXZhdGUgPSAmc3RyZWFtOwotICAgIGxvYWQoU3RyaW5nKCJtZWRpYXN0cmVhbTovLyIpICsg
c3RyZWFtLmlkKCkpOworICAgIGxvYWQobWFrZVN0cmluZygibWVkaWFzdHJlYW06Ly8iLCBzdHJl
YW0uaWQoKSkpOwogICAgIHN5bmNPbkNsb2NrKGZhbHNlKTsKIAogICAgIG1fcGxheWVyLT5wbGF5
KCk7CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBnc3RfbWVzc2Fn
ZV9wYXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwog
ICAgICAgICBHU1RfRVJST1IoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwgZXJy
LT5tZXNzYWdlLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBtX2Vy
cm9yTWVzc2FnZSA9IFN0cmluZyB7IGVyci0+bWVzc2FnZSB9OworICAgICAgICBtX2Vycm9yTWVz
c2FnZSA9IFN0cmluZzo6ZnJvbUxhdGluMShlcnItPm1lc3NhZ2UpOwogCiAgICAgICAgIGVycm9y
ID0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHk7CiAgICAgICAgIGlmIChnX2Vycm9y
X21hdGNoZXMoZXJyLmdldCgpLCBHU1RfU1RSRUFNX0VSUk9SLCBHU1RfU1RSRUFNX0VSUk9SX0NP
REVDX05PVF9GT1VORCkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAg
IGVsc2UgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJz
IikpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3Np
bmcgSFRUUCBoZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAg
ICAgIGlmIChjb25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAidXJpIikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nIHsgdXJpIH0g
fTsKKyAgICAgICAgICAgICAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsK
ICAgICAgICAgICAgICAgICBtX29yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJs
KSk7CiAKICAgICAgICAgICAgICAgICBpZiAodXJsICE9IG1fdXJsKSB7CkBAIC0yMTY2LDcgKzIx
NjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y29uZmlndXJlRG93bmxv
YWRCdWZmZXIoR3N0RWxlbWVudCogZWxlbWVudCkKICAgICBnX29iamVjdF9zZXQoZWxlbWVudCwg
InRlbXAtdGVtcGxhdGUiLCBuZXdEb3dubG9hZFRlbXBsYXRlLmdldCgpLCBudWxscHRyKTsKICAg
ICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNvbmZpZ3VyZWQgZmlsZSBkb3dubG9h
ZCB0ZW1wbGF0ZSBmcm9tICclcycgdG8gJyVzJyIsIG9sZERvd25sb2FkVGVtcGxhdGUuZ2V0KCks
IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkpOwogCi0gICAgU3RyaW5nIG5ld0Rvd25sb2FkUHJl
Zml4UGF0aCB7IG5ld0Rvd25sb2FkVGVtcGxhdGUuZ2V0KCkgfTsKKyAgICBhdXRvIG5ld0Rvd25s
b2FkUHJlZml4UGF0aCA9IFN0cmluZzo6ZnJvbUxhdGluMShuZXdEb3dubG9hZFRlbXBsYXRlLmdl
dCgpKTsKICAgICBwdXJnZU9sZERvd25sb2FkRmlsZXMobmV3RG93bmxvYWRQcmVmaXhQYXRoLnJl
cGxhY2UoIlhYWFhYWCIsICIiKSk7CiB9CiAKQEAgLTI0NzAsMTEgKzI0NzAsMTEgQEAgYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICAv
LyB0aG91Z2guIFdlIG5lZWQgdG8gdGFrZSB0aGUgYmFzZSBvZiB0aGUgY3VycmVudCB1cmwgYW5k
CiAgICAgICAgIC8vIGFwcGVuZCB0aGUgdmFsdWUgb2YgbmV3LWxvY2F0aW9uIHRvIGl0LgogICAg
ICAgICBVUkwgYmFzZVVybCA9IGdzdF91cmlfaXNfdmFsaWQobmV3TG9jYXRpb24pID8gVVJMKCkg
OiBtX3VybDsKLSAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmcgeyBuZXdM
b2NhdGlvbiB9KTsKKyAgICAgICAgVVJMIG5ld1VybCA9IFVSTChiYXNlVXJsLCBTdHJpbmc6OmZy
b21MYXRpbjEobmV3TG9jYXRpb24pKTsKIAogICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBw
bGF5YmluVXJsU3RyOwogICAgICAgICBnX29iamVjdF9nZXQobV9waXBlbGluZS5nZXQoKSwgImN1
cnJlbnQtdXJpIiwgJnBsYXliaW5VcmxTdHIub3V0UHRyKCksIG51bGxwdHIpOwotICAgICAgICBV
UkwgcGxheWJpblVybCB7IFN0cmluZyB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfSB9OworICAgICAg
ICBVUkwgcGxheWJpblVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwbGF5YmluVXJsU3RyLmdldCgp
KSB9OwogCiAgICAgICAgIGlmIChwbGF5YmluVXJsID09IG5ld1VybCkgewogICAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiUGxheWJpbiBhbHJlYWR5IGhhbmRsZWQgcmVk
aXJlY3Rpb24uIik7CkBAIC0yNTk5LDcgKzI1OTksNyBAQCBib29sIGlzTWVkaWFEaXNrQ2FjaGVE
aXNhYmxlZCgpCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdKCkgewotICAgICAgICBTdHJpbmcgcyhz
dGQ6OmdldGVudigiV1BFX1NIRUxMX0RJU0FCTEVfTUVESUFfRElTS19DQUNIRSIpKTsKKyAgICAg
ICAgYXV0byBzID0gU3RyaW5nOjpmcm9tTGF0aW4xKHN0ZDo6Z2V0ZW52KCJXUEVfU0hFTExfRElT
QUJMRV9NRURJQV9ESVNLX0NBQ0hFIikpOwogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBzLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xv
d2VyY2FzZVdpdGhvdXRMb2NhbGUoKTsKICAgICAgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSA9PSAi
MSIgfHwgdmFsdWUgPT0gInQiIHx8IHZhbHVlID09ICJ0cnVlIik7CkBAIC0zOTE4LDcgKzM5MTgs
NyBAQCBJbml0RGF0YSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhcnNlSW5pdERhdGFG
cm9tUHJvdGVjdGlvbk1lc3NhZ2UoR3N0TWVzcwogICAgICAgICAgICAgR3N0QnVmZmVyKiBkYXRh
ID0gbnVsbHB0cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50
LmdldCgpLCAmZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxwdHIpOwogCi0gICAgICAgICAg
ICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmcgeyBldmVudEtleVN5c3RlbUlkIH0sIGRhdGEgfSk7
CisgICAgICAgICAgICBpbml0RGF0YS5hcHBlbmQoeyBTdHJpbmc6OmZyb21MYXRpbjEoZXZlbnRL
ZXlTeXN0ZW1JZCksIGRhdGEgfSk7CiAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZl
bnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC00MDM5LDcgKzQwMzksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aGFuZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50KiBldmVudCkKICAgICBjb25zdCBjaGFyKiBl
dmVudEtleVN5c3RlbVVVSUQgPSBudWxscHRyOwogICAgIEdzdEJ1ZmZlciogaW5pdERhdGEgPSBu
dWxscHRyOwogICAgIGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlT
eXN0ZW1VVUlELCAmaW5pdERhdGEsIG51bGxwdHIpOwotICAgIGluaXRpYWxpemF0aW9uRGF0YUVu
Y291bnRlcmVkKHsgU3RyaW5nIHsgZXZlbnRLZXlTeXN0ZW1VVUlEIH0sIGluaXREYXRhIH0pOwor
ICAgIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKHsgU3RyaW5nOjpmcm9tTGF0aW4xKGV2
ZW50S2V5U3lzdGVtVVVJRCksIGluaXREYXRhIH0pOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6d2FpdGluZ0ZvcktleSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJh
Y2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggMDNlZGFjOGM4ZTk3YmIxZWFhNGIzM2Iz
ZjQ0NTlhY2RhZGZiOTQ3NC4uMjk1N2JjZWYzZDBkMGUxODI4ZWY1ZGY3YmY4YmNlNWRlYzJmOGQ5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAt
MTk1LDcgKzE5NSw3IEBAIGJvb2wgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6Z2V0TGFuZ3Vh
Z2VDb2RlKEdzdFRhZ0xpc3QqIHRhZ3MsIEF0b21TdHJpbmcmIHZhCiB7CiAgICAgU3RyaW5nIGxh
bmd1YWdlOwogICAgIGlmIChnZXRUYWcodGFncywgR1NUX1RBR19MQU5HVUFHRV9DT0RFLCBsYW5n
dWFnZSkpIHsKLSAgICAgICAgbGFuZ3VhZ2UgPSBTdHJpbmcgeyBnc3RfdGFnX2dldF9sYW5ndWFn
ZV9jb2RlX2lzb182MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSB9OworICAgICAgICBsYW5n
dWFnZSA9IFN0cmluZzo6ZnJvbUxhdGluMShnc3RfdGFnX2dldF9sYW5ndWFnZV9jb2RlX2lzb182
MzlfMShsYW5ndWFnZS51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIEdTVF9ERUJVRygiQ29udmVy
dGVkIHRyYWNrICVkJ3MgbGFuZ3VhZ2UgY29kZSB0byAlcy4iLCBtX2luZGV4LCBsYW5ndWFnZS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IHZhbHVlKSB7CiAgICAgICAg
ICAgICB2YWx1ZSA9IGxhbmd1YWdlOwpAQCAtMjExLDcgKzIxMSw3IEBAIGJvb2wgVHJhY2tQcml2
YXRlQmFzZUdTdHJlYW1lcjo6Z2V0VGFnKEdzdFRhZ0xpc3QqIHRhZ3MsIGNvbnN0IGdjaGFyKiB0
YWdOYW1lLCBTCiAgICAgR1VuaXF1ZU91dFB0cjxnY2hhcj4gdGFnVmFsdWU7CiAgICAgaWYgKGdz
dF90YWdfbGlzdF9nZXRfc3RyaW5nKHRhZ3MsIHRhZ05hbWUsICZ0YWdWYWx1ZS5vdXRQdHIoKSkp
IHsKICAgICAgICAgR1NUX0RFQlVHKCJUcmFjayAlZCBnb3QgJXMgJXMuIiwgbV9pbmRleCwgdGFn
TmFtZSwgdGFnVmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyB0YWdW
YWx1ZS5nZXQoKSB9OworICAgICAgICB2YWx1ZSA9IFN0cmluZ1R5cGUgeyBTdHJpbmc6OmZyb21M
YXRpbjEodGFnVmFsdWUuZ2V0KCkpIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9GcmFtZU1ldGFkYXRhR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3Ry
ZWFtZXIuY3BwCmluZGV4IGQ3YmU4MDUxOGVkNjllY2VjZDcxNmZhYjIzMjMwZjhjNzYwYjk2YzUu
LjMwNWU1MWFmZjc1YzVmYjBiYTNhZWFkMmExNTQzMGYyY2E0ZjRjM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRh
dGFHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb0ZyYW1lTWV0YWRhdGFHU3RyZWFtZXIuY3BwCkBAIC0xMjMsNyArMTIzLDcg
QEAgdm9pZCB3ZWJraXRHc3RUcmFjZVByb2Nlc3NpbmdUaW1lRm9yRWxlbWVudChHc3RFbGVtZW50
KiBlbGVtZW50KQogICAgIGdzdF9wYWRfYWRkX3Byb2JlKHNpbmtQYWQuZ2V0KCksIHByb2JlVHlw
ZSwgW10oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCBncG9pbnRlciB1c2VyRGF0YSkg
LT4gR3N0UGFkUHJvYmVSZXR1cm4gewogICAgICAgICBhdXRvIFttb2RpZmllZEJ1ZmZlciwgbWV0
YV0gPSBlbnN1cmVWaWRlb0ZyYW1lTWV0YWRhdGEoR1NUX1BBRF9QUk9CRV9JTkZPX0JVRkZFUihp
bmZvKSk7CiAgICAgICAgIEdTVF9QQURfUFJPQkVfSU5GT19EQVRBKGluZm8pID0gbW9kaWZpZWRC
dWZmZXI7Ci0gICAgICAgIG1ldGEtPnByaXYtPnByb2Nlc3NpbmdUaW1lcy5zZXQoU3RyaW5nIHsg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odXNlckRhdGEpIH0sIHN0ZDo6bWFrZV9wYWlyKGdzdF91
dGlsX2dldF90aW1lc3RhbXAoKSwgR1NUX0NMT0NLX1RJTUVfTk9ORSkpOworICAgICAgICBtZXRh
LT5wcml2LT5wcm9jZXNzaW5nVGltZXMuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJl
dF9jYXN0PGNoYXIqPih1c2VyRGF0YSkpLCBzdGQ6Om1ha2VfcGFpcihnc3RfdXRpbF9nZXRfdGlt
ZXN0YW1wKCksIEdTVF9DTE9DS19USU1FX05PTkUpKTsKICAgICAgICAgcmV0dXJuIEdTVF9QQURf
UFJPQkVfT0s7CiAgICAgfSwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxlbWVudCksIGdfZnJlZSk7
CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIHdlYmtpdEdzdFRyYWNlUHJvY2Vzc2luZ1RpbWVG
b3JFbGVtZW50KEdzdEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIGlmICghbWV0YSkKICAgICAg
ICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogCi0gICAgICAgIFN0cmluZyBlbGVtZW50
TmFtZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHVzZXJEYXRhKSB9OworICAgICAgICBhdXRv
IGVsZW1lbnROYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHVzZXJEYXRhKSk7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtZXRhLT5wcml2LT5wcm9jZXNzaW5n
VGltZXMuZ2V0KGVsZW1lbnROYW1lKTsKICAgICAgICAgbWV0YS0+cHJpdi0+cHJvY2Vzc2luZ1Rp
bWVzLnNldChlbGVtZW50TmFtZSwgc3RkOjptYWtlX3BhaXIodmFsdWUuZmlyc3QsIGdzdF91dGls
X2dldF90aW1lc3RhbXAoKSkpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGQ2NDA0
YzEyMGNhOGFkZTEwZjc1ZWI3YjliM2FkYzJkNWMzZDM5MGEuLjk2ZGZjZmMxMmNlYzdjYmMwNGUz
ZDNjZmI1OTllNTczNWUzMjNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgVmlkZW9UcmFja1ByaXZh
dGVHU3RyZWFtZXI6OnVwZGF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ2FwcygpCiAKICNpZiBHU1RfQ0hF
Q0tfVkVSU0lPTigxLCAyMCwgMCkKICAgICBHVW5pcXVlUHRyPGNoYXI+IGNvZGVjKGdzdF9jb2Rl
Y191dGlsc19jYXBzX2dldF9taW1lX2NvZGVjKGNhcHMuZ2V0KCkpKTsKLSAgICBjb25maWd1cmF0
aW9uLmNvZGVjID0gU3RyaW5nIHsgY29kZWMuZ2V0KCkgfTsKKyAgICBjb25maWd1cmF0aW9uLmNv
ZGVjID0gU3RyaW5nOjpmcm9tTGF0aW4xKGNvZGVjLmdldCgpKTsKICNlbmRpZgogCiAgICAgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoWyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKaW5kZXggZDBhZDY3MmQ3MTA5N2NmOTEyYTE3MzIyNzA1ZGYwZWVkM2My
MDhlMy4uZDUxMWRhMTAwMTljYjQxZDJlODg2NDRjM2YzYTk5Yjc3MTdmOGI5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTU5Niw3ICs1OTYsNyBA
QCBzdGF0aWMgYm9vbCB3ZWJLaXRXZWJTcmNTZXRFeHRyYUhlYWRlcihHUXVhcmsgZmllbGRJZCwg
Y29uc3QgR1ZhbHVlKiB2YWx1ZSwgZ3BvaQogCiAgICAgR1NUX0RFQlVHKCJBcHBlbmRpbmcgZXh0
cmEgaGVhZGVyOiBcIiVzOiAlc1wiIiwgZmllbGROYW1lLCBmaWVsZENvbnRlbnQuZ2V0KCkpOwog
ICAgIFJlc291cmNlUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFJlc291cmNlUmVxdWVz
dCo+KHVzZXJEYXRhKTsKLSAgICByZXF1ZXN0LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nIHsg
ZmllbGROYW1lIH0sIFN0cmluZyB7IGZpZWxkQ29udGVudC5nZXQoKSB9KTsKKyAgICByZXF1ZXN0
LT5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tTGF0aW4xKGZpZWxkTmFtZSksIFN0cmlu
Zzo6ZnJvbUxhdGluMShmaWVsZENvbnRlbnQuZ2V0KCkpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0
KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2NrZXI8V2ViS2l0V2ViCiAgICAgQVNTRVJU
KG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uICE9IG1lbWJlcnMtPnN0b3BQb3NpdGlvbik7CiAK
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBvc3RpbmcgdGFzayB0byByZXF1ZXN0IFIldSAl
cyByZXF1ZXN0ZWRQb3NpdGlvbj0lIiBHX0dVSU5UNjRfRk9STUFUICIgc3RvcFBvc2l0aW9uPSUi
IEdfR1VJTlQ2NF9GT1JNQVQsIG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIsIHByaXYtPm9yaWdpbmFs
VVJJLmRhdGEoKSwgbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24sIG1lbWJlcnMtPnN0b3BQb3Np
dGlvbik7Ci0gICAgVVJMIHVybCB7IFN0cmluZyB7IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSB9
IH07CisgICAgVVJMIHVybCB7IFN0cmluZzo6ZnJvbUxhdGluMShwcml2LT5vcmlnaW5hbFVSSS5k
YXRhKCkpIH07CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVl
c3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHN0YXRpYyB2b2lk
IHdlYktpdFdlYlNyY01ha2VSZXF1ZXN0KFdlYktpdFdlYlNyYyogc3JjLCBEYXRhTXV0ZXhMb2Nr
ZXI8V2ViS2l0V2ViCiAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobWVtYmVycy0+cmVmZXJy
ZXIpOwogCiAgICAgaWYgKHByaXYtPmh0dHBNZXRob2QuZ2V0KCkpCi0gICAgICAgIHJlcXVlc3Qu
c2V0SFRUUE1ldGhvZChTdHJpbmcgeyBwcml2LT5odHRwTWV0aG9kLmdldCgpIH0pOworICAgICAg
ICByZXF1ZXN0LnNldEhUVFBNZXRob2QoU3RyaW5nOjpmcm9tTGF0aW4xKHByaXYtPmh0dHBNZXRo
b2QuZ2V0KCkpKTsKIAogI2lmIFVTRShTT1VQKQogICAgIC8vIEJ5IGRlZmF1bHQsIEhUVFAgQWNj
ZXB0LUVuY29kaW5nIGlzIGRpc2FibGVkIGhlcmUgYXMgd2UgZG9uJ3QKQEAgLTY4MSw3ICs2ODEs
NyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNNYWtlUmVxdWVzdChXZWJLaXRXZWJTcmMqIHNy
YywgRGF0YU11dGV4TG9ja2VyPFdlYktpdFdlYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBm
b3JtYXRlZFJhbmdlLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigiYnl0ZXM9JSIgR19HVUlOVDY0X0ZP
Uk1BVCAiLSIsIG1lbWJlcnMtPnJlcXVlc3RlZFBvc2l0aW9uKSk7CiAgICAgICAgIEdTVF9ERUJV
R19PQkpFQ1Qoc3JjLCAiUmFuZ2UgcmVxdWVzdDogJXMiLCBmb3JtYXRlZFJhbmdlLmdldCgpKTsK
LSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdl
LCBTdHJpbmcgeyBmb3JtYXRlZFJhbmdlLmdldCgpIH0pOworICAgICAgICByZXF1ZXN0LnNldEhU
VFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmFuZ2UsIFN0cmluZzo6ZnJvbUxhdGluMShm
b3JtYXRlZFJhbmdlLmdldCgpKSk7CiAgICAgfQogICAgIEFTU0VSVChtZW1iZXJzLT5yZWFkUG9z
aXRpb24gPT0gbWVtYmVycy0+cmVxdWVzdGVkUG9zaXRpb24pOwogCkBAIC04ODEsNyArODgxLDcg
QEAgY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJLaXRXZWJTcmNHZXRQcm90b2NvbHMoR1R5cGUpCiAK
IHN0YXRpYyBVUkwgY29udmVydFBsYXliaW5VUkkoY29uc3QgY2hhciogdXJpU3RyaW5nKQogewot
ICAgIHJldHVybiBVUkwgeyBTdHJpbmcgeyB1cmlTdHJpbmcgfSB9OworICAgIHJldHVybiBVUkwg
eyBTdHJpbmc6OmZyb21MYXRpbjEodXJpU3RyaW5nKSB9OwogfQogCiBzdGF0aWMgZ2NoYXIqIHdl
YktpdFdlYlNyY0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1
bmRlci5jcHAKaW5kZXggMDRlYWUwMGNhNTUzOWU3ZDJkOWIyODM5NWNlOWFlM2Y2ODcxMjI5ZC4u
YmM1MzlhODc0NzgwMjgxODEzZjZhZjMwMGFlMmUwMmI3NmFlNjFiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NE
TVRodW5kZXIuY3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIENE
TUZhY3RvcnlUaHVuZGVyOjpzdXBwb3J0ZWRLZXlTeXN0ZW1zKCkgY29uc3QKICAgICBpZiAoc3Vw
cG9ydGVkS2V5U3lzdGVtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgZW1wdHlT
dHJpbmc7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVN
RVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSwgZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0g
RVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRlZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJl
YW1lckVNRVV0aWxpdGllczo6c19XaWRldmluZUtleVN5c3RlbSk7CisgICAgICAgICAgICBzdXBw
b3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZyb21MYXRpbjEoR1N0cmVhbWVyRU1FVXRp
bGl0aWVzOjpzX1dpZGV2aW5lS2V5U3lzdGVtKSk7CiAgICAgICAgIGlmIChvcGVuY2RtX2lzX3R5
cGVfc3VwcG9ydGVkKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5c3RlbSwg
ZW1wdHlTdHJpbmcuY19zdHIoKSkgPT0gRVJST1JfTk9ORSkKLSAgICAgICAgICAgIHN1cHBvcnRl
ZEtleVN5c3RlbXMuYXBwZW5kKEdTdHJlYW1lckVNRVV0aWxpdGllczo6c19DbGVhcktleUtleVN5
c3RlbSk7CisgICAgICAgICAgICBzdXBwb3J0ZWRLZXlTeXN0ZW1zLmFwcGVuZChTdHJpbmc6OmZy
b21MYXRpbjEoR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjpzX0NsZWFyS2V5S2V5U3lzdGVtKSk7CiAg
ICAgICAgIEdTVF9ERUJVRygiJXp1IHN1cHBvcnRlZCBrZXkgc3lzdGVtcyIsIHN1cHBvcnRlZEtl
eVN5c3RlbXMuc2l6ZSgpKTsKICAgICB9OwogICAgIHJldHVybiBzdXBwb3J0ZWRLZXlTeXN0ZW1z
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgKaW5kZXggZDJhZGU4
NzMwYzA0ZTc1NTAyYzZhMDQ0YTAxNzljOTMyNmM5ZTNhOC4uYWE2MWM0MWFmY2U0NWFjYTIxN2I3
ZjVlZjdkZGNlOTFlZmIyOGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9HU3RyZWFtZXJFTUVVdGlsaXRpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0dTdHJlYW1lckVNRVV0
aWxpdGllcy5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBjaGFy
Kiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVt
c1ZhbHVlKSk7CiAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXMpIHsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHN0cmVhbUVuY3J5cHRpb25BbGxvd2Vk
U3lzdGVtc1tpXTsgKytpKQotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlU3lzdGVtcy5hcHBl
bmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBt
X2F2YWlsYWJsZVN5c3RlbXMuYXBwZW5kKFN0cmluZzo6ZnJvbUxhdGluMShzdHJlYW1FbmNyeXB0
aW9uQWxsb3dlZFN5c3RlbXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KICAgICBjb25zdCBFdmVu
dFZlY3RvciYgZXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHM7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlw
ZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggMWFmMGU1NTRkODJiYWU1ODE5M2NhYzY5NzVhYTVh
NzMxZTBhMzg1ZS4uMGJiMjJkNTI1OTBlZGUyNTc4ZjA0ZjI2YTYxNmY5MTYwYzQ0YjNkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9B
cHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGQ6
OnR1cGxlPEdSZWZQdHI8R3N0Q2Fwcz4sIEFwcGVuZFBpcGVsaW5lOjpTdHJlYW1UeXBlLCBGbG9h
dFNpemU+IEFwcGVuZFBpcGVsaQogCiAgICAgY29uc3QgY2hhciogb3JpZ2luYWxNZWRpYVR5cGUg
PSBjYXBzTWVkaWFUeXBlKGRlbXV4ZXJTcmNQYWRDYXBzKTsKICAgICBhdXRvJiBnc3RSZWdpc3Ry
eVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXJNU0U6OnNpbmdsZXRvbigpOwotICAg
IGlmICghZ3N0UmVnaXN0cnlTY2FubmVyLmlzQ29kZWNTdXBwb3J0ZWQoR1N0cmVhbWVyUmVnaXN0
cnlTY2FubmVyOjpDb25maWd1cmF0aW9uOjpEZWNvZGluZywgU3RyaW5nIHsgb3JpZ2luYWxNZWRp
YVR5cGUgfSkpIHsKKyAgICBpZiAoIWdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvZGVjU3VwcG9ydGVk
KEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6Q29uZmlndXJhdGlvbjo6RGVjb2RpbmcsIFN0cmlu
Zzo6ZnJvbUxhdGluMShvcmlnaW5hbE1lZGlhVHlwZSkpKSB7CiAgICAgICAgIHN0cmVhbVR5cGUg
PSBTdHJlYW1UeXBlOjpJbnZhbGlkOwogICAgIH0gZWxzZSBpZiAoZG9DYXBzSGF2ZVR5cGUoZGVt
dXhlclNyY1BhZENhcHMsIEdTVF9WSURFT19DQVBTX1RZUEVfUFJFRklYKSkgewogICAgICAgICBw
cmVzZW50YXRpb25TaXplID0gZ2V0VmlkZW9SZXNvbHV0aW9uRnJvbUNhcHMoZGVtdXhlclNyY1Bh
ZENhcHMpLnZhbHVlX29yKEZsb2F0U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwCmluZGV4IGYxZWM2MzFhOTdlM2JkYjI5YmE0MWI0
Y2Q1ZmM2NmE2MTEwMTM0YTAuLjAxZjEwYjc4ZTYxNjg5NjFhMjA1MTZlMWExNzY0YTI1MzhhNDdm
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvR1N0cmVhbWVyTWVkaWFEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9u
LmNwcApAQCAtNzQsNyArNzQsNyBAQCBBdG9tU3RyaW5nIEdTdHJlYW1lck1lZGlhRGVzY3JpcHRp
b246OmV4dHJhY3RDb2RlY05hbWUoKQogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRl
c2NyaXB0aW9uKGdzdF9wYl91dGlsc19nZXRfY29kZWNfZGVzY3JpcHRpb24ob3JpZ2luYWxDYXBz
LmdldCgpKSk7Ci0gICAgU3RyaW5nIGNvZGVjTmFtZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAg
YXV0byBjb2RlY05hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoZGVzY3JpcHRpb24uZ2V0KCkpOwog
CiAgICAgLy8gUmVwb3J0ICJILjI2NCAoTWFpbiBQcm9maWxlKSIgYW5kICJILjI2NCAoSGlnaCBQ
cm9maWxlKSIganVzdCBhcyAiSC4yNjQiIHRvIGFsbG93IGNoYW5nZXMgYmV0d2VlbiBib3RoIHZh
cmlhbnRzCiAgICAgLy8gZ28gdW5ub3RpY2VkIHRvIHRoZSBTb3VyY2VCdWZmZXIgbGF5ZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCBiNjE1MGRhNDNkMTc4NGZkNTUyNWZiYmZhOWI4NTI3MGVlMDMwOTlkLi41ZDU0MTll
ODQ4ZWE2NmU0NWY1ZDgzMzViNWM5NjJjZTY0NDU5ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI5NSw3ICsyOTUs
NyBAQCBzaXplX3QgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVt
QnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9T
SVpFPScqOjEwME0nCiAgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2
aWRlbzo5ME0sVDoxMDAwMDAnCiAKLSAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9N
QVhfQlVGRkVSX1NJWkUiKSk7CisgICAgICAgIGF1dG8gcyA9IFN0cmluZzo6ZnJvbUxhdGluMShz
dGQ6OmdldGVudigiTVNFX01BWF9CVUZGRVJfU0laRSIpKTsKICAgICAgICAgaWYgKCFzLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywn
KTsKICAgICAgICAgICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zR0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKaW5kZXggOTE5NjNkMzI5MDkzZTM2ZTA0YTJkOWZhYjFj
M2ZkYWMzNDZmMGFmZi4uZWU2NDMxYWM4MGUxMTBmNTQ5OWNjZWMxZDVjYzBiNmJjNWEzNjhkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnNHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnNHTE9wZW5HTC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEV4
dGVuc2lvbnNHTE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvckFOR0xFKEdDR0x1aW50IGluZGV4
LCBHQ0dMdWludCBkaXZpcwogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTDo6Z2V0RXh0ZW5zaW9u
cygpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUluZGV4ZWRHZXRTdHJpbmcpOwotICAgIHJldHVybiBT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRF
TlNJT05TKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCiAjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xDb21tb24uY3BwCmluZGV4IGU5MjMyNGFjYmY3ZTRmZTBhYWJlMjkyMzczNDUyMTQ2ODRjYWUy
OWMuLmZlYWE1ZWQ0YWMyOWQ5ZjdlOTc3MThmODk2MTZlZGQ2NGE1NDFmZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVu
R0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zR0xPcGVuR0xDb21tb24uY3BwCkBAIC03NCw4ICs3NCw4IEBAIEV4dGVuc2lv
bnNHTE9wZW5HTENvbW1vbjo6RXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiBjb250CiAgICAgLCBtX3JlcXVpcmVzUmVzdHJpY3RlZE1heGltdW1UZXh0dXJl
U2l6ZShmYWxzZSkKICAgICAsIG1fdXNlSW5kZXhlZEdldFN0cmluZyh1c2VJbmRleGVkR2V0U3Ry
aW5nKQogewotICAgIG1fdmVuZG9yID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KDo6Z2xHZXRTdHJpbmcoR0xfVkVORE9SKSkpOwotICAgIG1fcmVuZGVyZXIgPSBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9SRU5ERVJFUikp
KTsKKyAgICBtX3ZlbmRvciA9IFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX1ZFTkRPUikpKTsKKyAgICBtX3JlbmRlcmVyID0g
U3RyaW5nOjpmcm9tTGF0aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfUkVOREVSRVIpKSk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB2ZW5kb3JDb21wb25l
bnRzID0gbV92ZW5kb3IuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKS5zcGxpdCgnICcpOwogICAg
IGlmICh2ZW5kb3JDb21wb25lbnRzLmNvbnRhaW5zKCJudmlkaWEiKSkKQEAgLTIxNSw3ICsyMTUs
NyBAQCB2b2lkIEV4dGVuc2lvbnNHTE9wZW5HTENvbW1vbjo6aW5pdGlhbGl6ZUF2YWlsYWJsZUV4
dGVuc2lvbnMoKQogICAgICAgICBHTGludCBudW1FeHRlbnNpb25zID0gMDsKICAgICAgICAgOjpn
bEdldEludGVnZXJ2KEdMX05VTV9FWFRFTlNJT05TLCAmbnVtRXh0ZW5zaW9ucyk7CiAgICAgICAg
IGZvciAoR0xpbnQgaSA9IDA7IGkgPCBudW1FeHRlbnNpb25zOyArK2kpCi0gICAgICAgICAgICBt
X2F2YWlsYWJsZUV4dGVuc2lvbnMuYWRkKFN0cmluZyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGdsR2V0U3RyaW5naShHTF9FWFRFTlNJT05TLCBpKSkgfSk7CisgICAgICAgICAgICBt
X2F2YWlsYWJsZUV4dGVuc2lvbnMuYWRkKFN0cmluZzo6ZnJvbUxhdGluMShyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywgaSkpKSk7CiAKICAg
ICAgICAgaWYgKCFtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJl
X3N0b3JhZ2UiX3MpKSB7CiAgICAgICAgICAgICBHTGludCBtYWpvclZlcnNpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnNHTE9wZW5HTEVTLmNwcAppbmRleCBiOTExMTAyNTk4MzU4OTBkNjUxM2ZhMDMzYzMy
Zjk1MWU3ZWZkYmQ5Li5lZGFlMTI5MmYxODkzZWRkODQyMjQ0YmZhN2ZmYzQ1NjBkMDk4ZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uc0dMT3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xFUy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBib29s
IEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpwbGF0Zm9ybVN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgbmFtZSkKIAogU3RyaW5nIEV4dGVuc2lvbnNHTE9wZW5HTEVTOjpnZXRFeHRlbnNpb25z
KCkKIHsKLSAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6
Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0
aW4xKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5T
SU9OUykpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTC5jcHAKaW5kZXggMGE2YTg4Y2YxYWQ0Yzg0ZDEwMDE0NGQzNTk3NTliOTVh
ZTdiMjNiZi4uOGY1NDY2YTVhM2U3YmU5ZWM2YWMwMjk1OWFmZmRlNDk4NWIwNmRlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBT
dHJpbmcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFN0cmluZyhHQ0dMZW51bSBuYW1lKQog
ICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhuYW1lKSkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhuYW1lKSkpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5k
ZXggNjZkYmVjNDBhYWMyYjczOTdhMTkzMzExNjZjNzJiZDYyNjE2ZTA2ZS4uMjg2NWI4YjhhYTQ0
MWMzNTllMmE0NmEzNGFlNjllZDdlNzc5N2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgY29uc3QgVGV4dHVy
ZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzJiBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6
OmdldCgpCiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgYXR0cmlidXRlcy5pc0dMRVMyQ29t
cGxpYW50ID0gdHJ1ZTsKIAotICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAg
ICAgICBhdXRvIGV4dGVuc2lvbnNTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKICAgICAg
ICAgYXR0cmlidXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcyA9IGV4dGVuc2lvbnNTdHJpbmcuY29u
dGFpbnMoIkdMX09FU190ZXh0dXJlX25wb3QiKTsKICAgICAgICAgYXR0cmlidXRlcy5zdXBwb3J0
c1VucGFja1N1YmltYWdlID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucygiR0xfRVhUX3VucGFj
a19zdWJpbWFnZSIpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3Bw
CmluZGV4IGM3YTFjMjcyNWQzZDJlMmVmOWJlOTczZDljZmM4Y2ZhYjk4Yjg4ZGYuLjkwNmY5YjQz
YzBlN2U3MmUxZDJkNmY2YTFkNzkzZDk4YzExMGUzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBUZXh0dXJlTWFwcGVyRlBTQ291bnRl
cjo6VGV4dHVyZU1hcHBlckZQU0NvdW50ZXIoKQogICAgICwgbV9sYXN0RlBTKDApCiAgICAgLCBt
X2ZyYW1lQ291bnQoMCkKIHsKLSAgICBTdHJpbmcgc2hvd0ZQU0Vudmlyb25tZW50IHsgZ2V0ZW52
KCJXRUJLSVRfU0hPV19GUFMiKSB9OworICAgIGF1dG8gc2hvd0ZQU0Vudmlyb25tZW50ID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdldGVudigiV0VCS0lUX1NIT1dfRlBTIikpOwogICAgIGJvb2wgb2sg
PSBmYWxzZTsKICAgICBtX2Zwc0ludGVydmFsID0gU2Vjb25kcyhzaG93RlBTRW52aXJvbm1lbnQu
dG9Eb3VibGUoJm9rKSk7CiAgICAgaWYgKG9rICYmIG1fZnBzSW50ZXJ2YWwpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOTUzZGYzNzhl
YzVmMWJmNmEwZmFkZDlkOWFiYjE5N2M4ZjAwYTAxZi4uNjhjYjE1MDZhMTBlYTJlMWFkZDBiYmRk
MGY2ZGY1MzA0ZTI2MWZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIG1pbWVUeXBlQ2FjaGUoKQogICAgIGlm
IChjYWNoZWRUeXBlcy5nZXQoKS5zaXplKCkgPiAwKQogICAgICAgICByZXR1cm4gY2FjaGVkVHlw
ZXM7CiAKLSAgICBjYWNoZWRUeXBlcy5nZXQoKS5hZGQoU3RyaW5nKCJ2aWRlby9tcDQiKSk7Cisg
ICAgY2FjaGVkVHlwZXMuZ2V0KCkuYWRkKCJ2aWRlby9tcDQiX3MpOwogCiAgICAgUFJPUFZBUklB
TlQgcHJvcFZhck1pbWVUeXBlQXJyYXk7CiAgICAgUHJvcFZhcmlhbnRJbml0KCZwcm9wVmFyTWlt
ZVR5cGVBcnJheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IGMwMTdmMjFmYmQ4NGYyYjg0MmUwMWYy
NDhjYzQ0MDcyM2NiMWFhYjguLmRkNWZiODYzNDI3N2JhZWE5MmJlNmVjYWY2ZDJmYmM3Y2U3ZWU5
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0xMzAwLDExICsxMzAwLDExIEBAIFN0cmluZyBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OnNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCB2YWwpCiAg
ICAgY2FzZSBHREtfS0VZX0lTT19FbnRlcjoKICAgICBjYXNlIEdES19LRVlfS1BfRW50ZXI6CiAg
ICAgY2FzZSBHREtfS0VZX1JldHVybjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHIiKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygiXHIiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9CYWNrU3BhY2U6
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx4OCIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJc
eDgiX3MpOwogICAgIGNhc2UgR0RLX0tFWV9UYWI6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlx0
Iik7CisgICAgICAgIHJldHVybiBTdHJpbmcoIlx0Il9zKTsKICAgICBkZWZhdWx0OgogICAgICAg
ICBndW5pY2hhciBjID0gZ2RrX2tleXZhbF90b191bmljb2RlKHZhbCk7CiAgICAgICAgIGdsb25n
IG53YzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpYndwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRMaWJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3Bl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKaW5kZXggODQzMjMxZDNiNThhMDJmZDlk
OTNkM2EzN2I4Njk5N2JlNTZkMGYzMC4uYTcyNGYxMjZmOGYzODlkNDZiYTVjMWE5NDFlZWY3NmZk
YzU5Yzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGlid3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGlid3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudExpYldQRS5jcHAKQEAgLTEyOTcsMTEgKzEyOTcs
MTEgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5n
KHVuc2lnbmVkIHZhbCkKICAgICBjYXNlIFdQRV9LRVlfSVNPX0VudGVyOgogICAgIGNhc2UgV1BF
X0tFWV9LUF9FbnRlcjoKICAgICBjYXNlIFdQRV9LRVlfUmV0dXJuOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJcciIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJcciJfcyk7CiAgICAgY2FzZSBX
UEVfS0VZX0JhY2tTcGFjZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgICAg
IHJldHVybiBTdHJpbmcoIlx4OCJfcyk7CiAgICAgY2FzZSBXUEVfS0VZX1RhYjoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiX3MpOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDI1NzY2ZDk3NWYyNDg0
MzAzOGE3NjBlNzI2OWU4NGVjMTQxMzYxYTguLjU5NTczOTU1MjMxMWJkM2QxYmQ0MDEyYWU1Y2Ew
ODY5YmNkZmU3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckNhcHR1
cmVEZXZpY2VNYW5hZ2VyLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgR1N0cmVhbWVyQ2Fw
dHVyZURldmljZU1hbmFnZXI6OmFkZERldmljZShHUmVmUHRyPEdzdERldmljZT4mJiBkZXZpY2Up
CiAKICAgICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUgPSBkZXZpY2VUeXBlKCk7CiAg
ICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXZpY2VDbGFzc0NoYXIoZ3N0X2RldmljZV9nZXRfZGV2aWNl
X2NsYXNzKGRldmljZS5nZXQoKSkpOwotICAgIFN0cmluZyBkZXZpY2VDbGFzcyhTdHJpbmcoZGV2
aWNlQ2xhc3NDaGFyLmdldCgpKSk7CisgICAgYXV0byBkZXZpY2VDbGFzcyA9IFN0cmluZzo6ZnJv
bUxhdGluMShkZXZpY2VDbGFzc0NoYXIuZ2V0KCkpOwogICAgIGlmICh0eXBlID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgo
IkF1ZGlvIikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodHlwZSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgIWRldmljZUNsYXNzLnN0YXJ0c1dpdGgoIlZpZGVvIikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCmluZGV4IDQxYzhhNDgzMDM4NDZkNGRiYWUzYjM5Nzg0NmI1Mjk3
MmU2YTAyMDkuLmMyZTg2OTdhZmRiNmZkZDg0ZDYyYTEzYWRiNmU5YmY5N2E2ZGU4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJEaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJEaXNwbGF5Q2FwdHVyZURl
dmljZU1hbmFnZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdT
dHJlYW1lckRpc3BsYXlDYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y3JlYXRlRGlzcGxheUNhcHR1cmVT
CiAgICAgZ192YXJpYW50X2dldChyZXN1bHQuZ2V0KCksICIobykiLCAmb2JqZWN0UGF0aC5vdXRQ
dHIoKSk7CiAgICAgd2FpdFJlc3BvbnNlU2lnbmFsKG9iamVjdFBhdGguZ2V0KCkpOwogCi0gICAg
U3RyaW5nIHJlcXVlc3RQYXRoKG9iamVjdFBhdGguZ2V0KCkpOworICAgIGF1dG8gcmVxdWVzdFBh
dGggPSBTdHJpbmc6OmZyb21MYXRpbjEob2JqZWN0UGF0aC5nZXQoKSk7CiAgICAgYXV0byBzZXNz
aW9uUGF0aCA9IHJlcXVlc3RQYXRoLnJlcGxhY2UoIi9yZXF1ZXN0LyIsICIvc2Vzc2lvbi8iKS5y
ZXBsYWNlKHRva2VuLCBzZXNzaW9uVG9rZW4pOwogCiAgICAgLy8gRklYTUU6IE1heWJlIGNoZWNr
IHRoaXMgZGVwZW5kaW5nIG9uIGRldmljZS50eXBlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IDFhNzRiMjVkNGVmZDU4Y2Y3NWI3M2NmZDYyYjA3NTc0MmY1Mjg4ZjcuLjliOTdhYzdlZjMxMDJk
NjE3M2M0YTM4NzA2NmQ4NzZmZDdhZGNkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC04OSw3
ICs4OSw3IEBAIGJvb2wgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVhbWVyOjpzZXRQ
YXlsb2FkVHlwZShjb25zdCBHUmVmUHRyPEdzdENhcHM+CiAgICAgZ19vYmplY3Rfc2V0KG1fcGF5
bG9hZGVyLmdldCgpLCAiYXV0by1oZWFkZXItZXh0ZW5zaW9uIiwgRkFMU0UsIG51bGxwdHIpOwog
CiAgICAgaWYgKGNvbnN0IGNoYXIqIG1pblBUaW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5n
KHN0cnVjdHVyZSwgIm1pbnB0aW1lIikpIHsKLSAgICAgICAgU3RyaW5nIHRpbWUobWluUFRpbWUp
OworICAgICAgICBhdXRvIHRpbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEobWluUFRpbWUpOwogICAg
ICAgICBpZiAoYXV0byB2YWx1ZSA9IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGlu
dDY0X3Q+KHRpbWUpKQogICAgICAgICAgICAgZ19vYmplY3Rfc2V0KG1fcGF5bG9hZGVyLmdldCgp
LCAibWluLXB0aW1lIiwgKnZhbHVlICogR1NUX01TRUNPTkQsIG51bGxwdHIpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0aWZpY2F0
ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DZXJ0
aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCAwNzFiYjFhNDdiZTA3ODA0NjA0MjA1ZmUyMjBkOGE3
M2QzZGU2OWM4Li4yYTcxNzJjZTc3MjRhMWZmYTg4NDM5MDU4NzMyYWJhNWJkNTU1YzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ2VydGlmaWNhdGVJ
bmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nl
cnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENlcnRpZmljYXRlSW5mbyBD
ZXJ0aWZpY2F0ZUluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAKIFN0cmluZyBDZXJ0aWZpY2F0
ZUluZm86OnZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIHJldHVy
biBTdHJpbmcgeyBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhtX3ZlcmlmaWNhdGlvbkVy
cm9yKSB9OworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoWDUwOV92ZXJpZnlfY2VydF9l
cnJvcl9zdHJpbmcobV92ZXJpZmljYXRpb25FcnJvcikpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm86
OkNlcnRpZmljYXRlIENlcnRpZmljYXRlSW5mbzo6bWFrZUNlcnRpZmljYXRlKGNvbnN0IHVpbnQ4
X3QqIGJ1ZmZlciwgc2l6ZV90IHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCAzZTVkNmYxYzkwZjYxOGVmZDFl
NWNhZDEwZDRhMDZhZWU1OTk2M2RiLi43ZGU4NmMwOGUzNDk2ZGYzMGZlMTQwNmI4Y2IzMmRmZmUy
MGNlY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBDdXJsSGFuZGxlOjp+Q3VybEhh
bmRsZSgpCiAKIGNvbnN0IFN0cmluZyBDdXJsSGFuZGxlOjplcnJvckRlc2NyaXB0aW9uKENVUkxj
b2RlIGVycm9yQ29kZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nKGN1cmxfZWFzeV9zdHJlcnJvcihl
cnJvckNvZGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tTGF0aW4xKGN1cmxfZWFzeV9zdHJl
cnJvcihlcnJvckNvZGUpKTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjplbmFibGVTU0xGb3JIb3N0
KGNvbnN0IFN0cmluZyYgaG9zdCkKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIEN1cmxIYW5kbGU6
OmFkZEV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaQogICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2
ZWQgPSByZXNwb25zZUhlYWRlclNpemU7CiAKICAgICBpZiAoaXApIHsKLSAgICAgICAgYWRkaXRp
b25hbE1ldHJpY3MtPnJlbW90ZUFkZHJlc3MgPSBTdHJpbmcoaXApOworICAgICAgICBhZGRpdGlv
bmFsTWV0cmljcy0+cmVtb3RlQWRkcmVzcyA9IFN0cmluZzo6ZnJvbUxhdGluMShpcCk7CiAgICAg
ICAgIGlmIChwb3J0KQogICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlbW90ZUFkZHJl
c3MuYXBwZW5kKCI6IiArIFN0cmluZzo6bnVtYmVyKHBvcnQpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKaW5kZXggNGY4OWQ5NzNlYzkxMWE1ZDkwOWRkZDdlMmVi
YTk3YTVkNGZiY2IwZi4uYTNiZThiZTgzMjkzMjBhNTZmYWU0MjA1ZmE5YmE5ZWMzOGVjODU4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcApAQCAtNDksNyArNDksNyBAQCBz
dGF0aWMgU3RyaW5nIGRlZmF1bHRDb29raWVKYXJQYXRoKCkKICAgICByZXR1cm4gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KEZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmlj
U3RvcmFnZURpcmVjdG9yeSgpLCBkZWZhdWx0RmlsZU5hbWUpOwogI2Vsc2UKICAgICAvLyBGSVhN
RTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNwotICAgIHJl
dHVybiBTdHJpbmcgeyBkZWZhdWx0RmlsZU5hbWUgfTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
TGF0aW4xKGRlZmF1bHRGaWxlTmFtZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL09wZW5TU0xIZWxwZXIuY3BwCmluZGV4IGQz
OWI2NWI0NDBlOGYyYmIxOTU0ZTZjNjBhM2U4OTIzYjNmNDZhYjYuLmQzZWUwN2MxZWEyMmNlYTE3
OGYxN2MwZWRiMzUzMDJmNjEwZWMxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9PcGVuU1NMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvT3BlblNTTEhlbHBlci5jcHAKQEAgLTM0MCwxMiArMzQwLDEy
IEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVTdW1tYXJ5PiBjcmVhdGVTdW1t
YXJ5SW5mbyhjb25zdCBWZWN0b3I8dWludDhfCiAKIFN0cmluZyB0bHNWZXJzaW9uKGNvbnN0IFNT
TCogc3NsKQogewotICAgIHJldHVybiBTdHJpbmcgeyBTU0xfZ2V0X3ZlcnNpb24oc3NsKSB9Owor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoU1NMX2dldF92ZXJzaW9uKHNzbCkpOwogfQog
CiBTdHJpbmcgdGxzQ2lwaGVyTmFtZShjb25zdCBTU0wqIHNzbCkKIHsKLSAgICByZXR1cm4gU3Ry
aW5nIHsgU1NMX0NJUEhFUl9nZXRfbmFtZShTU0xfZ2V0X2N1cnJlbnRfY2lwaGVyKHNzbCkpIH07
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShTU0xfQ0lQSEVSX2dldF9uYW1lKFNTTF9n
ZXRfY3VycmVudF9jaXBoZXIoc3NsKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKaW5kZXgg
ZWY4OTYyMjRmYTA3YWE1ZmRhMWZhODJhOGJjY2YxZjZhZDc3MzA1Ny4uZDJkZTBkZDFlOWRmYzEw
NWUyYzc3Y2RlOWU3MWExYmI0NzE4MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApAQCAtNDgsNyAr
NDgsNyBAQCBzdGF0aWMgU3RyaW5nIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5JbnRlcm5h
bChjb25zdCBwc2xfY3R4X3QqIHBzbCwgY29uc3QgYwogewogICAgIC8vIHBzbF9yZWdpc3RlcmFi
bGVfZG9tYWluIHJldHVybnMgYSBwb2ludGVyIHRvIGRvbWFpbidzIGRhdGEgb3IgbnVsbCBpZiB0
aGVyZSBpcyBubyBwcml2YXRlIGRvbWFpbgogICAgIGlmIChjb25zdCBjaGFyKiB0b3BQcml2YXRl
RG9tYWluID0gcHNsX3JlZ2lzdHJhYmxlX2RvbWFpbihwc2wsIGRvbWFpbikpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcgeyB0b3BQcml2YXRlRG9tYWluIH07CisgICAgICAgIHJldHVybiBTdHJpbmc6
OmZyb21MYXRpbjEodG9wUHJpdmF0ZURvbWFpbik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU3luY2hy
b25vdXNMb2FkZXJDbGllbnRDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCmluZGV4IDU3MjBlMjRkZjhh
MDBhZmU3YTliMThkMDRiMjAyNDRlNTkxMWMxY2YuLjcxN2ViZGQxYmM2MDlhNzEzYWYxM2Q1NWEw
NmUwYmIwMDE2MjA1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNsaWVudEN1cmwuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIFJlc291cmNlRXJyb3IgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6
OnBsYXRmb3JtQmFkUmVzcG9uc2VFcnJvcigpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9IDA7CiAg
ICAgVVJMIGZhaWxpbmdVUkw7Ci0gICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQg
U2VydmVyIFJlc3BvbnNlIik7CisgICAgU3RyaW5nIGxvY2FsaXplZERlc2NyaXB0aW9uKCJCYWQg
U2VydmVyIFJlc3BvbnNlIl9zKTsKIAogICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJDVVJMIl9z
LCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBhOGQyMzcwNjQ4ZDI0Njg4MTJjZTVi
NmY5NTM5YWFiMDk2MmU4NmJjLi42ZTBhM2RjN2FjNWFkZjIyZjU1M2Y4MTExMzYzM2ExMzVhZTky
NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC01MjUsNyArNTI1
LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omhhc0Nvb2tpZXMoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGkKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29v
a2llcyhzb3VwX2Nvb2tpZV9qYXJfYWxsX2Nvb2tpZXMoY29va2llU3RvcmFnZSgpKSk7CiAgICAg
Zm9yIChhdXRvKiBpdGVtID0gY29va2llcy5nZXQoKTsgaXRlbTsgaXRlbSA9IGdfc2xpc3RfbmV4
dChpdGVtKSkgewogICAgICAgICBHVW5pcXVlUHRyPFNvdXBDb29raWU+IGNvb2tpZShzdGF0aWNf
Y2FzdDxTb3VwQ29va2llKj4oaXRlbS0+ZGF0YSkpOwotICAgICAgICBpZiAoUmVnaXN0cmFibGVE
b21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFN0cmluZyB7IHNvdXBfY29va2llX2dldF9k
b21haW4oY29va2llLmdldCgpKSB9KSA9PSBkb21haW4pIHsKKyAgICAgICAgaWYgKFJlZ2lzdHJh
YmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChTdHJpbmc6OmZyb21MYXRpbjEoc291
cF9jb29raWVfZ2V0X2RvbWFpbihjb29raWUuZ2V0KCkpKSkgPT0gZG9tYWluKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlRXJyb3JTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUVycm9yU291cC5jcHAKaW5kZXggMzRhNTdlNWMyYzJlYjY5ODk3YTU3M2FlNDAz
MmIyMzFiOTk5M2MxZC4uY2JhYmMwMTkyNjI0MGQxMTU2ZjM4MjY4NzYwMDQwNWQ5YzdkYWY3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
RXJyb3JTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VFcnJvclNvdXAuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjp0cmFuc3BvcnRFcnJvcihjb25zdCBV
UkwmIGZhaWxpbmdVUkwsIGludCBzdGF0dXNDb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvblBocmFz
ZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmlu
ZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSB9LCBzdGF0dXNDb2RlLCBmYWlsaW5nVVJMLCByZWFz
b25QaHJhc2UpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShn
X3F1YXJrX3RvX3N0cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSksIHN0YXR1c0NvZGUsIGZh
aWxpbmdVUkwsIHJlYXNvblBocmFzZSk7CiB9CiAKIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJv
cjo6aHR0cEVycm9yKFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBHRXJyb3IqIGVycm9yKQpAQCAtNjEs
MjIgKzYxLDIyIEBAIFJlc291cmNlRXJyb3IgUmVzb3VyY2VFcnJvcjo6YXV0aGVudGljYXRpb25F
cnJvcihTb3VwTWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7CiAjaWYg
VVNFKFNPVVAyKQotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9f
c3RyaW5nKFNPVVBfSFRUUF9FUlJPUl9ET01BSU4pIH0sIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAor
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0
cmluZyhTT1VQX0hUVFBfRVJST1JfRE9NQUlOKSksIG1lc3NhZ2UtPnN0YXR1c19jb2RlLAogICAg
ICAgICBzb3VwVVJJVG9VUkwoc291cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBTdHJpbmc6
OmZyb21VVEY4KG1lc3NhZ2UtPnJlYXNvbl9waHJhc2UpKTsKICNlbHNlCi0gICAgcmV0dXJuIFJl
c291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9OX0VSUk9S
KSB9LCBzb3VwX21lc3NhZ2VfZ2V0X3N0YXR1cyhtZXNzYWdlKSwKKyAgICByZXR1cm4gUmVzb3Vy
Y2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoU09VUF9TRVNTSU9O
X0VSUk9SKSksIHNvdXBfbWVzc2FnZV9nZXRfc3RhdHVzKG1lc3NhZ2UpLAogICAgICAgICBzb3Vw
X21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSwgU3RyaW5nOjpmcm9tVVRGOChzb3VwX21lc3NhZ2Vf
Z2V0X3JlYXNvbl9waHJhc2UobWVzc2FnZSkpKTsKICNlbmRpZgogfQogCiBSZXNvdXJjZUVycm9y
IFJlc291cmNlRXJyb3I6OmdlbmVyaWNHRXJyb3IoY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBHRXJy
b3IqIGVycm9yKQogewotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtf
dG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCBmYWlsaW5nVVJMLCBTdHJp
bmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3Io
U3RyaW5nOjpmcm9tTGF0aW4xKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pKSwgZXJy
b3ItPmNvZGUsIGZhaWxpbmdVUkwsIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsK
IH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjp0bHNFcnJvcihjb25zdCBVUkwmIGZh
aWxpbmdVUkwsIHVuc2lnbmVkIHRsc0Vycm9ycywgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0
ZSkKIHsKLSAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190
b19zdHJpbmcoR19UTFNfRVJST1IpIH0sIEdfVExTX0VSUk9SX0JBRF9DRVJUSUZJQ0FURSwgZmFp
bGluZ1VSTCwgdW5hY2NlcHRhYmxlVExTQ2VydGlmaWNhdGUoKSk7CisgICAgUmVzb3VyY2VFcnJv
ciByZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3RvX3N0cmluZyhHX1RM
U19FUlJPUikpLCBHX1RMU19FUlJPUl9CQURfQ0VSVElGSUNBVEUsIGZhaWxpbmdVUkwsIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0VExTRXJyb3Jz
KHRsc0Vycm9ycyk7CiAgICAgcmVzb3VyY2VFcnJvci5zZXRDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0
ZSk7CiAgICAgcmV0dXJuIHJlc291cmNlRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5k
ZXggOTM5NThlMjRkYTYwNWYzZTVhNDdjZDZjNjVmYWJlNzRhY2NjZWRmMS4uZmY0NDA0MDM4OGE1
MDgyYTI4MDBkZjYwOWU1OTg2OWFhMDAwZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApA
QCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1l
c3NhZ2VIZWFkZXJzKFNvdXBNZXNzYWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgY29uc3QgY2hh
ciogaGVhZGVyTmFtZTsKICAgICBjb25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKICAgICB3aGlsZSAo
c291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZoZWFkZXJzSXRlciwgJmhlYWRlck5hbWUs
ICZoZWFkZXJWYWx1ZSkpCi0gICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhl
YWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKKyAgICAgICAgbV9odHRwSGVhZGVyRmll
bGRzLnNldChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmluZzo6ZnJvbUxhdGlu
MShoZWFkZXJWYWx1ZSkpOwogfQogCiB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBDb25u
ZWN0aW9uQ291bnRQZXJIb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDMyZTAw
Mjg1NTY5NDYzMmEwMjc3NDA5MTQ1NDNmNzczNTc1NzFmMGIuLmEzYzY4MDdhODY2YzIwNjU5ODk0
MWQ4Y2Q3NmFkMWJjN2ViODJhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdl
KiBzb3VwTWVzc2FnZSwgY29uc3QgQ1N0cmluZyYgc25pZgogICAgIH0KIAogICAgIG1faHR0cFN0
YXR1c0NvZGUgPSBzb3VwX21lc3NhZ2VfZ2V0X3N0YXR1cyhzb3VwTWVzc2FnZSk7Ci0gICAgc2V0
SFRUUFN0YXR1c1RleHQoU3RyaW5nIHsgc291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNv
dXBNZXNzYWdlKSB9KTsKKyAgICBzZXRIVFRQU3RhdHVzVGV4dChTdHJpbmc6OmZyb21MYXRpbjEo
c291cF9tZXNzYWdlX2dldF9yZWFzb25fcGhyYXNlKHNvdXBNZXNzYWdlKSkpOwogCiAgICAgbV9j
ZXJ0aWZpY2F0ZSA9IHNvdXBfbWVzc2FnZV9nZXRfdGxzX3BlZXJfY2VydGlmaWNhdGUoc291cE1l
c3NhZ2UpOwogICAgIG1fdGxzRXJyb3JzID0gc291cF9tZXNzYWdlX2dldF90bHNfcGVlcl9jZXJ0
aWZpY2F0ZV9lcnJvcnMoc291cE1lc3NhZ2UpOwpAQCAtNjYsOSArNjYsOSBAQCBSZXNvdXJjZVJl
c3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29uc3Qg
Q1N0cmluZyYgc25pZgogICAgIFN0cmluZyBjb250ZW50VHlwZTsKICAgICBjb25zdCBjaGFyKiBv
ZmZpY2lhbFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKHJlc3BvbnNlSGVhZGVy
cywgIkNvbnRlbnQtVHlwZSIpOwogICAgIGlmICghc25pZmZlZENvbnRlbnRUeXBlLmlzTnVsbCgp
ICYmIG1faHR0cFN0YXR1c0NvZGUgIT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEICYmIHNuaWZm
ZWRDb250ZW50VHlwZSAhPSBvZmZpY2lhbFR5cGUpCi0gICAgICAgIGNvbnRlbnRUeXBlID0gU3Ry
aW5nIHsgc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSB9OworICAgICAgICBjb250ZW50VHlwZSA9
IFN0cmluZzo6ZnJvbUxhdGluMShzbmlmZmVkQ29udGVudFR5cGUuZGF0YSgpKTsKICAgICBlbHNl
Ci0gICAgICAgIGNvbnRlbnRUeXBlID0gU3RyaW5nIHsgb2ZmaWNpYWxUeXBlIH07CisgICAgICAg
IGNvbnRlbnRUeXBlID0gU3RyaW5nOjpmcm9tTGF0aW4xKG9mZmljaWFsVHlwZSk7CiAgICAgc2V0
TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAg
IGlmIChtX21pbWVUeXBlLmlzRW1wdHkoKSAmJiBtX2h0dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RB
VFVTX05PVF9NT0RJRklFRCkKICAgICAgICAgc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6
bWltZVR5cGVGb3JQYXRoKG1fdXJsLnBhdGgoKS50b1N0cmluZygpKSk7CkBAIC05MCw3ICs5MCw3
IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkCiAgICAgY29uc3QgY2hhciogaGVhZGVyVmFsdWU7
CiAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cEhl
YWRlcnMpOwogICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRl
cnNJdGVyLCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRl
ckZpZWxkKFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVlKSk7CisgICAgICAg
IGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyTmFtZSksIFN0cmlu
Zzo6ZnJvbUxhdGluMShoZWFkZXJWYWx1ZSkpOwogfQogCiBDZXJ0aWZpY2F0ZUluZm8gUmVzb3Vy
Y2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCmluZGV4IGYwZDQxZDUzZWE0MGNkZjQ3MGU1
MGU0YWY1MWQ1OTNlNDJkNjZhYjUuLjQ3ZDRjOTkyMWUzM2RkNWI2Njc1YTFkNzFmNzI0MTZiOTYz
NGUzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNV
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKQEAg
LTE4OSw3ICsxODksNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdHJpbmc+PiBj
cmVhdGVGYWxsYmFja01vbnRoTGFiZWxzKCkKIHsKICAgICBhdXRvIGxhYmVscyA9IG1ha2VVbmlx
dWU8VmVjdG9yPFN0cmluZz4+KCk7CiAgICAgbGFiZWxzLT5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHN0ZDo6c2l6ZShXVEY6Om1vbnRoRnVsbE5hbWUpKTsKLSAgICBmb3IgKGF1dG8qIG1vbnRoTmFt
ZSA6IFdURjo6bW9udGhGdWxsTmFtZSkKKyAgICBmb3IgKGF1dG8gbW9udGhOYW1lIDogV1RGOjpt
b250aEZ1bGxOYW1lKQogICAgICAgICBsYWJlbHMtPnVuY2hlY2tlZEFwcGVuZChtb250aE5hbWUp
OwogICAgIHJldHVybiBsYWJlbHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9jb2NvYS9Mb2NhbGVDb2NvYS5tbQppbmRleCBlNjE4MWY0NjQ3ODU1NDI1OWI2MDJlYzg0
NGM3ZDU1NWUyMGRjYjdjLi4zZTU2MzVjNzQ1ZjI0MGY2ZjU0MDc0YjNkNTE0ZGRmNTZkNzAzODBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NvY29hL0xvY2FsZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY29jb2EvTG9jYWxlQ29j
b2EubW0KQEAgLTIwNyw3ICsyMDcsNyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlQ29j
b2E6OnNob3J0TW9udGhMYWJlbHMoKQogICAgIH0KICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVz
ZXJ2ZUNhcGFjaXR5KDEyKTsKICAgICBmb3IgKGF1dG8mIG5hbWUgOiBXVEY6Om1vbnRoTmFtZSkK
LSAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLnVuY2hlY2tlZEFwcGVuZChTdHJpbmc6OmZyb21M
YXRpbjEobmFtZSkpOworICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMudW5jaGVja2VkQXBwZW5k
KG5hbWUpOwogICAgIHJldHVybiBtX3Nob3J0TW9udGhMYWJlbHM7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCmluZGV4IGE0NGU0MzZiNjVl
YzMzNGZlNzQ4OGFkM2RkN2NlY2M4OWE3YjQwNGYuLmU5ZDE4Mjg5ZDk2YTE0ZDVlMjFhY2YxYTNh
YjFlYmIzYjI1YzYxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2luL0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4v
TG9jYWxlV2luLmNwcApAQCAtMzk4LDE2ICszOTgsMTYgQEAgdm9pZCBMb2NhbGVXaW46OmluaXRp
YWxpemVMb2NhbGVEYXRhKCkKICAgICBEV09SRCBkaWdpdFN1YnN0aXR1dGlvbiA9IERpZ2l0U3Vi
c3RpdHV0aW9uMHRvOTsKICAgICBnZXRMb2NhbGVJbmZvKExPQ0FMRV9JRElHSVRTVUJTVElUVVRJ
T04sIGRpZ2l0U3Vic3RpdHV0aW9uKTsKICAgICBpZiAoZGlnaXRTdWJzdGl0dXRpb24gPT0gRGln
aXRTdWJzdGl0dXRpb24wdG85KSB7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIwIik7Ci0gICAg
ICAgIHN5bWJvbHMuYXBwZW5kKCIxIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCIyIik7Ci0g
ICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI0Iik7
Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI1Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2
Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI3Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5k
KCI4Iik7Ci0gICAgICAgIHN5bWJvbHMuYXBwZW5kKCI5Iik7CisgICAgICAgIHN5bWJvbHMuYXBw
ZW5kKCIwIl9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQoIjEiX3MpOworICAgICAgICBzeW1i
b2xzLmFwcGVuZCgiMiJfcyk7CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCIzIl9zKTsKKyAgICAg
ICAgc3ltYm9scy5hcHBlbmQoIjQiX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiNSJfcyk7
CisgICAgICAgIHN5bWJvbHMuYXBwZW5kKCI2Il9zKTsKKyAgICAgICAgc3ltYm9scy5hcHBlbmQo
IjciX3MpOworICAgICAgICBzeW1ib2xzLmFwcGVuZCgiOCJfcyk7CisgICAgICAgIHN5bWJvbHMu
YXBwZW5kKCI5Il9zKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgZGlnaXRzID0gZ2V0
TG9jYWxlSW5mb1N0cmluZyhMT0NBTEVfU05BVElWRURJR0lUUyk7CiAgICAgICAgIEFTU0VSVChk
aWdpdHMubGVuZ3RoKCkgPj0gMTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcAppbmRleCA0MDkzNTM3ZGE1NTc5ZGI1NDMy
NmNjODhiNTRlNGFiMTdhMmUyMmUzLi5lZmI0YzUxZjY2N2UyMDMwYjBkZDExOWI0ODU0MmY1MGQ2
NjBlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJv
YXJkVXRpbGl0aWVzV2luLmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIFN0cmluZyBnZXRVUkwoSURh
dGFPYmplY3QqIGRhdGFPYmplY3QsIERyYWdEYXRhOjpGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3kg
ZmlsZW5hCiAgICAgfSBlbHNlIGlmIChTVUNDRUVERUQoZGF0YU9iamVjdC0+R2V0RGF0YSh1cmxG
b3JtYXQoKSwgJnN0b3JlKSkpIHsKICAgICAgICAgLy8gVVJMIHVzaW5nIEFTQ0lJCiAgICAgICAg
IGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFs
KSk7Ci0gICAgICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nKGRhdGEpLCB0aXRsZSk7CisgICAg
ICAgIHVybCA9IGV4dHJhY3RVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKGRhdGEpLCB0aXRsZSk7CiAg
ICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5oR2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01l
ZGl1bSgmc3RvcmUpOwogICAgIH0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBTdHJpbmcgZ2V0VVJMKElE
YXRhT2JqZWN0KiBkYXRhT2JqZWN0LCBEcmFnRGF0YTo6RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5
IGZpbGVuYQogICAgICAgICAgICAgLy8gZmlsZW5hbWUgdXNpbmcgYXNjaWkKICAgICAgICAgICAg
IGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9yZS5oR2xvYmFs
KSk7CiAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWzBdICYmIChQYXRoRmlsZUV4aXN0c0Eo
ZGF0YSkgfHwgUGF0aElzVU5DQShkYXRhKSkpIHsKLSAgICAgICAgICAgICAgICB1cmwgPSBVUkw6
OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoU3RyaW5nKGRhdGEpKS5maWxlU3lzdGVtUGF0aCgp
OworICAgICAgICAgICAgICAgIHVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChT
dHJpbmc6OmZyb21MYXRpbjEoZGF0YSkpLmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgICAgICAgICAg
ICAgaWYgKHRpdGxlKQogICAgICAgICAgICAgICAgICAgICAqdGl0bGUgPSB1cmw7CiAgICAgICAg
ICAgICB9CkBAIC01MjcsNyArNTI3LDcgQEAgU3RyaW5nIGdldFBsYWluVGV4dChJRGF0YU9iamVj
dCogZGF0YU9iamVjdCkKICAgICB9IGVsc2UgaWYgKFNVQ0NFRURFRChkYXRhT2JqZWN0LT5HZXRE
YXRhKHBsYWluVGV4dEZvcm1hdCgpLCAmc3RvcmUpKSkgewogICAgICAgICAvLyBBU0NJSSB0ZXh0
CiAgICAgICAgIGNoYXIqIGRhdGEgPSBzdGF0aWNfY2FzdDxjaGFyKj4oR2xvYmFsTG9jayhzdG9y
ZS5oR2xvYmFsKSk7Ci0gICAgICAgIHRleHQgPSBTdHJpbmcoZGF0YSk7CisgICAgICAgIHRleHQg
PSBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YSk7CiAgICAgICAgIEdsb2JhbFVubG9jayhzdG9yZS5o
R2xvYmFsKTsKICAgICAgICAgUmVsZWFzZVN0Z01lZGl1bSgmc3RvcmUpOwogICAgIH0gZWxzZSB7
CkBAIC02MTMsNyArNjEzLDcgQEAgYm9vbCBjb250YWluc0ZpbGVuYW1lcyhjb25zdCBEcmFnRGF0
YU1hcCopCiBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnRGcm9tQ0ZIVE1MKERvY3VtZW50
KiBkb2MsIGNvbnN0IFN0cmluZyYgY2ZodG1sKQogewogICAgIC8vIG9idGFpbiBiYXNlVVJMIGlm
IHByZXNlbnQKLSAgICBTdHJpbmcgc3JjVVJMU3RyKCJzb3VyY2VVUkw6Iik7CisgICAgU3RyaW5n
IHNyY1VSTFN0cigic291cmNlVVJMOiJfcyk7CiAgICAgU3RyaW5nIHNyY1VSTDsKICAgICB1bnNp
Z25lZCBsaW5lU3RhcnQgPSBjZmh0bWwuZmluZElnbm9yaW5nQVNDSUlDYXNlKHNyY1VSTFN0cik7
CiAgICAgaWYgKGxpbmVTdGFydCAhPSAtMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0dESU9iamVjdENvdW50ZXIuY3BwCmluZGV4IGI3NjQ5MWQ3NjY4NzU5NmZhNTQ2YmQ3
ZTgwZjVlMThhNGExNzU1Y2IuLjA4MDExNWNlZTE3ZTdhMzU2YTYxNTk2ZGEyNmM1NTNhMzA5Zjc0
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9HRElPYmplY3RDb3Vu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vR0RJT2JqZWN0Q291bnRl
ci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBHRElPYmplY3RD
b3VudGVyOjpHRElPYmplY3RDb3VudGVyKGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7Ci0gICAg
aW5pdChTdHJpbmcgeyBpZGVudGlmaWVyIH0pOworICAgIGluaXQoU3RyaW5nOjpmcm9tTGF0aW4x
KGlkZW50aWZpZXIpKTsKIH0KIAogR0RJT2JqZWN0Q291bnRlcjo6R0RJT2JqZWN0Q291bnRlcihj
b25zdCBTdHJpbmcmIGNsYXNzTmFtZSwgdm9pZCogaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNjY4NWVkOTkzNjQ2OWZkMGE0
M2ZiZTI0MTJiYmMzOGJjZmY4ZDU2ZC4uNGNlMzI4YTgzMWM5MGJmNmJkMjI4ZTFmMDcyNDA4ZDY0
YjMzYTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9h
cmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2lu
LmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJk
UGxhaW5UZXh0JiB0ZXh0LCBQbGFpblRleHRVUkxSZWFkaW5nUG9saWN5LCBzdGQ6CiAgICAgaWYg
KDo6SXNDbGlwYm9hcmRGb3JtYXRBdmFpbGFibGUoQ0ZfVEVYVCkgJiYgOjpPcGVuQ2xpcGJvYXJk
KG1fb3duZXIpKSB7CiAgICAgICAgIGlmIChIQU5ETEUgY2JEYXRhID0gOjpHZXRDbGlwYm9hcmRE
YXRhKENGX1RFWFQpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgdGhlIGNo
YXJhY3RlcnMgYXMgTGF0aW4tMSwgbm90IFVURi04IG9yIGV2ZW4gV2luZG93cyBMYXRpbi0xLiBJ
cyB0aGF0IHRoZSByaWdodCBlbmNvZGluZz8KLSAgICAgICAgICAgIHRleHQudGV4dCA9IFN0cmlu
ZyB7IHN0YXRpY19jYXN0PGNoYXIqPihHbG9iYWxMb2NrKGNiRGF0YSkpIH07CisgICAgICAgICAg
ICB0ZXh0LnRleHQgPSBTdHJpbmc6OmZyb21MYXRpbjEoc3RhdGljX2Nhc3Q8Y2hhcio+KEdsb2Jh
bExvY2soY2JEYXRhKSkpOwogICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAg
ICAgICAgICA6OkNsb3NlQ2xpcGJvYXJkKCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04ODgs
NyArODg4LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50
RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTaW1wbGUKICAgICAgICAgICAgIEhBTkRMRSBj
YkRhdGEgPSA6OkdldENsaXBib2FyZERhdGEoQ0ZfVEVYVCk7CiAgICAgICAgICAgICBpZiAoY2JE
YXRhKSB7CiAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KEdsb2JhbExvY2soY2JEYXRhKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0cihidWZmZXIp
OworICAgICAgICAgICAgICAgIGF1dG8gc3RyID0gU3RyaW5nOjpmcm9tTGF0aW4xKGJ1ZmZlcik7
CiAgICAgICAgICAgICAgICAgR2xvYmFsVW5sb2NrKGNiRGF0YSk7CiAgICAgICAgICAgICAgICAg
OjpDbG9zZUNsaXBib2FyZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVu
dEZyb21UZXh0KGNvbnRleHQsIHN0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwCmluZGV4IDc2OTE0ZTM0MzRhNTYwMTIyMDRhZDQx
YzE4MGVmN2JiNzVkYTcxOTUuLjIyZTc5ZTdiYWU2YjUzNzcwNjMyNTM2MmEwNWFlNjRjN2Q4ODVj
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0
b3JXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0
b3JXaW4uY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgZ2V0
U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHYpCiB7CiAgICAgLy8gRklYTUU6IFN0
cmluZ3Mgc2hvdWxkIGJlIGxvY2FsaXphYmxlLgotICAgIHYuYXBwZW5kKCJIaWdoIEdyYWRlIik7
CisgICAgdi5hcHBlbmQoIkhpZ2ggR3JhZGUiX3MpOwogfQogCiBTdHJpbmcgc2lnbmVkUHVibGlj
S2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxs
ZW5nZSwgY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS94ci9vcGVueHIvT3BlblhSVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29w
ZW54ci9PcGVuWFJVdGlscy5oCmluZGV4IDU2MzcyYmIzNTZlYzNlYzMyZDFhMDFiM2MwZmQ4OTJk
MjJjYWE5ZDIuLjMxM2MzMmE5MzZkOTEyZmQ2ODM5YzQwNzQ3ZDIzODZiNmI1MGIyMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9PcGVuWFJVdGlscy5oCkBAIC02
MCw3ICs2MCw3IEBAIGlubGluZSBTdHJpbmcgcmVzdWx0VG9TdHJpbmcoWHJSZXN1bHQgdmFsdWUs
IFhySW5zdGFuY2UgaW5zdGFuY2UpCiAgICAgY2hhciBidWZmZXJbWFJfTUFYX1JFU1VMVF9TVFJJ
TkdfU0laRV07CiAgICAgWHJSZXN1bHQgcmVzdWx0ID0geHJSZXN1bHRUb1N0cmluZyhpbnN0YW5j
ZSwgdmFsdWUsIGJ1ZmZlcik7CiAgICAgaWYgKHJlc3VsdCA9PSBYUl9TVUNDRVNTKQotICAgICAg
ICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRp
bjEoYnVmZmVyKTsKICAgICByZXR1cm4gbWFrZVN0cmluZygiPHVua25vd24gIiwgaW50KHZhbHVl
KSwgIj4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggZDcxZjRkMTA1N2VkYmI1M2VkYWUx
NjViMmZlMmNlMDNiMWYwZWU1Yy4uYjkyNGRhZDNiMjdlZWYwNGMwZjJhYTIwZjg4MDVmMmRjYjA2
ODdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gU2Vzc2lvbjo6cGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0CiAKICAg
ICBzd2l0Y2ggKGNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgewogICAg
IGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9u
ZSIpOworICAgICAgICByZXR1cm4gU3RyaW5nKCJOb25lIl9zKTsKICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vcm1hbDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTm9ybWFsIik7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoIk5vcm1hbCJfcyk7CiAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpFYWdlcjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRWFnZXIiKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygiRWFnZXIiX3MpOwogICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCA1OTE4NDcwYjg1Y2FjODdmZGI5
YzdhMzU5N2MyODFkMTBhNTliZWMyLi44ODZlNzYzNDQ4N2E5MDZjYzk3NjY3MGE3NzQ4NDQ4MTk5
OGFmMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAj
aWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIFN0cmluZyB0YXJnZXRTdHJpbmc7
CiAgICAgaWYgKGNvbnN0IGNoYXIqIHRhcmdldEVudlZhciA9IGdldGVudigiV0VCRFJJVkVSX1RB
UkdFVF9BRERSIikpCi0gICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyB7IHRhcmdldEVudlZh
ciB9OworICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEodGFyZ2V0RW52
VmFyKTsKICNlbmRpZgogICAgIGZvciAoaW50IGkgPSAxIDsgaSA8IGFyZ2M7ICsraSkgewogICAg
ICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwpAQCAtNzUsMTkgKzc1LDE5IEBAIGludCBX
ZWJEcml2ZXJTZXJ2aWNlOjpydW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAg
ICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEVYSVRfRkFJTFVSRTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBT
dHJpbmcgeyBhcmd2W2ldIH07CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZ3ZbaV0pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcG9ydFN0ckxlbmd0aCA9IHN0cmxlbigiLS1wb3J0
PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1wb3J0PSIsIHBvcnRTdHJMZW5ndGgp
ICYmIHBvcnRTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHBvcnRTdHJpbmcgPSBTdHJp
bmcoYXJnICsgcG9ydFN0ckxlbmd0aCk7CisgICAgICAgICAgICBwb3J0U3RyaW5nID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKGFyZyArIHBvcnRTdHJMZW5ndGgpOwogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaG9zdFN0ckxlbmd0
aCA9IHN0cmxlbigiLS1ob3N0PSIpOwogICAgICAgICBpZiAoIXN0cm5jbXAoYXJnLCAiLS1ob3N0
PSIsIGhvc3RTdHJMZW5ndGgpICYmICFob3N0KSB7Ci0gICAgICAgICAgICBob3N0ID0gU3RyaW5n
KGFyZyArIGhvc3RTdHJMZW5ndGgpOworICAgICAgICAgICAgaG9zdCA9IFN0cmluZzo6ZnJvbUxh
dGluMShhcmcgKyBob3N0U3RyTGVuZ3RoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAKQEAgLTk3LDEzICs5NywxMyBAQCBpbnQgV2ViRHJpdmVyU2VydmljZTo6cnVuKGludCBh
cmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGFy
Z3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmcgeyBhcmd2W2ldIH07CisgICAg
ICAgICAgICB0YXJnZXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoYXJndltpXSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCB0YXJnZXRTdHJMZW5ndGggPSBzdHJsZW4oIi0tdGFyZ2V0PSIpOwogICAgICAgICBpZiAo
IXN0cm5jbXAoYXJnLCAiLS10YXJnZXQ9IiwgdGFyZ2V0U3RyTGVuZ3RoKSAmJiB0YXJnZXRTdHJp
bmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHRhcmdldFN0cmluZyA9IFN0cmluZyhhcmcgKyB0
YXJnZXRTdHJMZW5ndGgpOworICAgICAgICAgICAgdGFyZ2V0U3RyaW5nID0gU3RyaW5nOjpmcm9t
TGF0aW4xKGFyZyArIHRhcmdldFN0ckxlbmd0aCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogI2VuZGlmCkBAIC01NjYsNyArNTY2LDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNl
OjpmaW5kU2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoSlNPTjo6T2JqZWN0JiBwYXJhbWV0ZXJz
LAogCiAgICAgaWYgKCFtX3Nlc3Npb24tPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgbV9zZXNz
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQsIFN0cmluZygi
c2Vzc2lvbiBkZWxldGVkIGJlY2F1c2Ugb2YgcGFnZSBjcmFzaCBvciBoYW5nLiIpKSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6
RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklELCBTdHJpbmcoInNlc3Npb24gZGVsZXRlZCBiZWNh
dXNlIG9mIHBhZ2UgY3Jhc2ggb3IgaGFuZy4iX3MpKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKQEAgLTcxNCwxNCArNzE0LDE0IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRy
aXZlclNlcnZpY2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAg
ICAgICAgIC8vIDIuMS4gSWYgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGlzIHVuZGVmaW5lZCwgc2V0
IHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBKU09OIE9iamVjdC4KICAgICAgICAgcmVxdWlyZWRDYXBh
YmlsaXRpZXMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIH0gZWxzZSBpZiAoIShyZXF1
aXJlZENhcGFiaWxpdGllcyA9IHJlcXVpcmVkQ2FwYWJpbGl0aWVzVmFsdWUtPmFzT2JqZWN0KCkp
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiYWx3YXlzTWF0Y2gg
aXMgaW52YWxpZCBpbiBjYXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFy
Z3VtZW50LCBTdHJpbmcoImFsd2F5c01hdGNoIGlzIGludmFsaWQgaW4gY2FwYWJpbGl0aWVzIl9z
KSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIDIuMi4gTGV0IHJlcXVp
cmVkIGNhcGFiaWxpdGllcyBiZSB0aGUgcmVzdWx0IG9mIHRyeWluZyB0byB2YWxpZGF0ZSBjYXBh
YmlsaXRpZXMgd2l0aCBhcmd1bWVudCByZXF1aXJlZCBjYXBhYmlsaXRpZXMuCiAgICAgcmVxdWly
ZWRDYXBhYmlsaXRpZXMgPSB2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoKnJlcXVpcmVkQ2FwYWJpbGl0
aWVzKTsKICAgICBpZiAoIXJlcXVpcmVkQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQsIFN0cmluZygiSW52YWxpZCBhbHdheXNNYXRjaCBjYXBhYmlsaXRpZXMi
KSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1h
bmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgYWx3
YXlzTWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IApAQCAtNzM2LDcgKzczNiw3IEBAIFZlY3RvcjxDYXBhYmlsaXRpZXM+IFdlYkRyaXZlclNlcnZp
Y2U6OnByb2Nlc3NDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JiBwCiAgICAgICAgIGZp
cnN0TWF0Y2hDYXBhYmlsaXRpZXNMaXN0ID0gZmlyc3RNYXRjaENhcGFiaWxpdGllc1ZhbHVlLT5h
c0FycmF5KCk7CiAgICAgICAgIGlmICghZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3QpIHsKICAg
ICAgICAgICAgIC8vIDMuMi4gSWYgYWxsIGZpcnN0IG1hdGNoIGNhcGFiaWxpdGllcyBpcyBub3Qg
YSBKU09OIExpc3QsIHJldHVybiBlcnJvciB3aXRoIGVycm9yIGNvZGUgaW52YWxpZCBhcmd1bWVu
dC4KLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiZmlyc3RNYXRj
aCBpcyBpbnZhbGlkIGluIGNhcGFiaWxpdGllcyIpKSk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52
YWxpZEFyZ3VtZW50LCBTdHJpbmcoImZpcnN0TWF0Y2ggaXMgaW52YWxpZCBpbiBjYXBhYmlsaXRp
ZXMiX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQpAQCAt
NzQ5LDEzICs3NDksMTMgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVyU2VydmljZTo6
cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZmlyc3RNYXRjaENhcGFiaWxpdGllc0xpc3RMZW5ndGg7ICsraSkgewog
ICAgICAgICBhdXRvIGZpcnN0TWF0Y2hDYXBhYmlsaXRpZXMgPSBmaXJzdE1hdGNoQ2FwYWJpbGl0
aWVzTGlzdC0+Z2V0KGkpLT5hc09iamVjdCgpOwogICAgICAgICBpZiAoIWZpcnN0TWF0Y2hDYXBh
YmlsaXRpZXMpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
SW52YWxpZCBjYXBhYmlsaXRpZXMgZm91bmQgaW4gZmlyc3RNYXRjaCIpKSk7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVy
cm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgY2FwYWJpbGl0aWVzIGZv
dW5kIGluIGZpcnN0TWF0Y2giX3MpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAg
ICB9CiAgICAgICAgIC8vIDUuMS4gTGV0IHZhbGlkYXRlZCBjYXBhYmlsaXRpZXMgYmUgdGhlIHJl
c3VsdCBvZiB0cnlpbmcgdG8gdmFsaWRhdGUgY2FwYWJpbGl0aWVzIHdpdGggYXJndW1lbnQgZmly
c3QgbWF0Y2ggY2FwYWJpbGl0aWVzLgogICAgICAgICBmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzID0g
dmFsaWRhdGVkQ2FwYWJpbGl0aWVzKCpmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKTsKICAgICAgICAg
aWYgKCFmaXJzdE1hdGNoQ2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50LCBTdHJpbmcoIkludmFsaWQgZmlyc3RNYXRjaCBjYXBhYmlsaXRpZXMiKSkpOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCwgU3RyaW5nKCJJbnZhbGlkIGZpcnN0
TWF0Y2ggY2FwYWJpbGl0aWVzIl9zKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAg
ICAgfQogCkBAIC03OTEsNyArNzkxLDcgQEAgVmVjdG9yPENhcGFiaWxpdGllcz4gV2ViRHJpdmVy
U2VydmljZTo6cHJvY2Vzc0NhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIHAKICAgICB9
CiAKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllc0xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJy
b3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJGYWlsZWQgdG8gbWF0Y2ggY2FwYWJp
bGl0aWVzIikpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZh
aWxlZCB0byBtYXRjaCBjYXBhYmlsaXRpZXMiX3MpKSk7CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNz
aW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm8KICAgICAv
LyDCpzguMSBOZXcgU2Vzc2lvbi4KICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJp
dmVyLyNuZXctc2Vzc2lvbgogICAgIGlmIChtX3Nlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlNl
c3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIk1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSBzZXNzaW9u
cyIpKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29t
bWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpTZXNzaW9uTm90Q3JlYXRlZCwgU3RyaW5nKCJNYXhpbXVt
IG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMiX3MpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTgxOSw3ICs4MTksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6Om5ld1Nlc3Npb24o
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2bwogdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpjb25uZWN0VG9Ccm93c2VyKFZlY3RvcjxDYXBhYmlsaXRpZXM+JiYgY2Fw
YWJpbGl0aWVzTGlzdCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoY2FwYWJpbGl0aWVzTGlzdC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OlNlc3Npb25Ob3RDcmVhdGVkLCBTdHJpbmcoIkZhaWxlZCB0byBtYXRjaCBj
YXBhYmlsaXRpZXMiKSkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6U2Vzc2lvbk5vdENyZWF0ZWQsIFN0cmlu
ZygiRmFpbGVkIHRvIG1hdGNoIGNhcGFiaWxpdGllcyJfcykpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BhdXNlQWN0
aW9uKEpTT046Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHN0ZDo6b3AKIAog
ICAgIGF1dG8gZHVyYXRpb24gPSB1bnNpZ25lZFZhbHVlKCpkdXJhdGlvblZhbHVlKTsKICAgICBp
ZiAoIWR1cmF0aW9uKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gcGF1c2UgYWN0aW9uIik7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQg
aW4gcGF1c2UgYWN0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAt
MTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QWN0aW9uPiBwcm9jZXNzTnVs
bEFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpPYmplY3QmIGEKIHsKICAgICBhdXRvIHN1
YnR5cGUgPSBhY3Rpb25JdGVtLmdldFN0cmluZygidHlwZSJfcyk7CiAgICAgaWYgKHN1YnR5cGUg
IT0gInBhdXNlIikgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0
ZXIgJ3R5cGUnIGluIG51bGwgYWN0aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyIpOworICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGluIG51bGwgYWN0
aW9uIGlzIGludmFsaWQgb3IgbWlzc2luZyJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
Y3Rpb24+IHByb2Nlc3NLZXlBY3Rpb24oY29uc3QgU3RyaW5nJiBpZCwgSlNPTjo6T2JqZWN0JiBh
YwogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0gImtleURvd24iKQogICAgICAgICBhY3Rpb25TdWJ0
eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpLZXlEb3duOwogICAgIGVsc2UgewotICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIGtleSBhY3Rpb24gaXMg
aW52YWxpZCIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIg
J3R5cGUnIG9mIGtleSBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xOTUwLDEyICsxOTUwLDEyIEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFjdGlvbj4gcHJvY2Vzc0tleUFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBKU09OOjpP
YmplY3QmIGFjCiAgICAgY2FzZSBBY3Rpb246OlN1YnR5cGU6OktleURvd246IHsKICAgICAgICAg
YXV0byBrZXlWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoInZhbHVlIl9zKTsKICAgICAgICAg
aWYgKCFrZXlWYWx1ZSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1hdGVyICd2YWx1ZScgaXMgbWlzc2luZyBmb3Iga2V5IHVwL2Rvd24gYWN0aW9uIik7Cisg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBp
cyBtaXNzaW5nIGZvciBrZXkgdXAvZG93biBhY3Rpb24iX3MpOwogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAgICBhdXRvIGtleSA9IGtleVZhbHVlLT5h
c1N0cmluZygpOwogICAgICAgICBpZiAoa2V5LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICd2YWx1ZScgaXMgaW52YWxpZCBmb3Ig
a2V5IHVwL2Rvd24gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWF0ZXIgJ3ZhbHVlJyBpcyBpbnZhbGlkIGZvciBrZXkgdXAvZG93biBhY3Rpb24i
X3MpOwogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgICAg
ICAvLyBGSVhNRTogY2hlY2sgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludC4KQEAgLTE5OTQsNyAr
MTk5NCw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmpl
Y3QmIGFjdGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgaWYgKGF1dG8gZHVyYXRpb25W
YWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImR1cmF0aW9uIl9zKSkgewogICAgICAgICBhdXRv
IGR1cmF0aW9uID0gdW5zaWduZWRWYWx1ZSgqZHVyYXRpb25WYWx1ZSk7CiAgICAgICAgIGlmICgh
ZHVyYXRpb24pIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFt
ZXRlciAnZHVyYXRpb24nIGlzIGludmFsaWQgaW4gYWN0aW9uIik7CisgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ2R1cmF0aW9uJyBpcyBpbnZhbGlkIGlu
IGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAg
ICAgYWN0aW9uLmR1cmF0aW9uID0gZHVyYXRpb24udmFsdWUoKTsKQEAgLTIwMDQsNyArMjAwNCw3
IEBAIHN0YXRpYyBib29sIHByb2Nlc3NQb2ludGVyTW92ZUFjdGlvbihKU09OOjpPYmplY3QmIGFj
dGlvbkl0ZW0sIEFjdGlvbiYgYWN0aW9uLCBzCiAgICAgICAgIGlmIChhdXRvIG9yaWdpbk9iamVj
dCA9IG9yaWdpblZhbHVlLT5hc09iamVjdCgpKSB7CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnRJ
RCA9IG9yaWdpbk9iamVjdC0+Z2V0U3RyaW5nKFNlc3Npb246OndlYkVsZW1lbnRJZGVudGlmaWVy
KCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50SUQpIHsKLSAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ29yaWdpbicgaXMgbm90IGEgdmFsaWQg
d2ViIGVsZW1lbnQgb2JqZWN0IGluIGFjdGlvbiIpOworICAgICAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBub3QgYSB2YWxpZCB3ZWIg
ZWxlbWVudCBvYmplY3QgaW4gYWN0aW9uIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0gUG9pbnRlck9y
aWdpbiB7IFBvaW50ZXJPcmlnaW46OlR5cGU6OkVsZW1lbnQsIGVsZW1lbnRJRCB9OwpAQCAtMjAx
NSw3ICsyMDE1LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1BvaW50ZXJNb3ZlQWN0aW9uKEpTT046
Ok9iamVjdCYgYWN0aW9uSXRlbSwgQWN0aW9uJiBhY3Rpb24sIHMKICAgICAgICAgICAgIGVsc2Ug
aWYgKG9yaWdpbiA9PSAicG9pbnRlciIpCiAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9
IFBvaW50ZXJPcmlnaW4geyBQb2ludGVyT3JpZ2luOjpUeXBlOjpQb2ludGVyLCBzdGQ6Om51bGxv
cHQgfTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3JpZ2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiIpOwor
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAnb3Jp
Z2luJyBpcyBpbnZhbGlkIGluIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMDI1LDcgKzIwMjUsNyBAQCBzdGF0
aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rpb25JdGVt
LCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHhWYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0
VmFsdWUoIngiX3MpKSB7CiAgICAgICAgIGF1dG8geCA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp4
VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXgpIHsKLSAgICAgICAgICAgIGVycm9yTWVz
c2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7
CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIgJ3gnIGlz
IGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgYWN0aW9uLnggPSB4LnZhbHVlKCk7CkBAIC0yMDM0LDcgKzIwMzQsNyBA
QCBzdGF0aWMgYm9vbCBwcm9jZXNzUG9pbnRlck1vdmVBY3Rpb24oSlNPTjo6T2JqZWN0JiBhY3Rp
b25JdGVtLCBBY3Rpb24mIGFjdGlvbiwgcwogICAgIGlmIChhdXRvIHlWYWx1ZSA9IGFjdGlvbkl0
ZW0uZ2V0VmFsdWUoInkiX3MpKSB7CiAgICAgICAgIGF1dG8geSA9IHZhbHVlQXNOdW1iZXJJblJh
bmdlKCp5VmFsdWUsIElOVF9NSU4pOwogICAgICAgICBpZiAoIXkpIHsKLSAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAneScgaXMgaW52YWxpZCBmb3IgYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J3knIGlzIGludmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLnkgPSB5LnZhbHVlKCk7CkBAIC0yMDU4LDcgKzIw
NTgsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NQb2ludGVyQWN0aW9u
KGNvbnN0IFN0cmluZyYgaWQsIFBvaW50ZXJQYXJhbQogICAgIGVsc2UgaWYgKHN1YnR5cGUgPT0g
InBvaW50ZXJDYW5jZWwiKQogICAgICAgICBhY3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBl
OjpQb2ludGVyQ2FuY2VsOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIG9mIHBvaW50ZXIgYWN0aW9uIGlzIGludmFsaWQiKTsK
KyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVyICd0eXBlJyBvZiBw
b2ludGVyIGFjdGlvbiBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTIwNzQsMTIgKzIwNzQsMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QWN0aW9uPiBwcm9jZXNzUG9pbnRlckFjdGlvbihjb25zdCBTdHJpbmcmIGlkLCBQb2ludGVyUGFy
YW0KICAgICBjYXNlIEFjdGlvbjo6U3VidHlwZTo6UG9pbnRlckRvd246IHsKICAgICAgICAgYXV0
byBidXR0b25WYWx1ZSA9IGFjdGlvbkl0ZW0uZ2V0VmFsdWUoImJ1dHRvbiJfcyk7CiAgICAgICAg
IGlmICghYnV0dG9uVmFsdWUpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygi
VGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBtaXNzaW5nIGZvciBwb2ludGVyIHVwL2Rvd24gYWN0
aW9uIik7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWF0ZXIg
J2J1dHRvbicgaXMgbWlzc2luZyBmb3IgcG9pbnRlciB1cC9kb3duIGFjdGlvbiJfcyk7CiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgICAgIGF1dG8gYnV0
dG9uID0gdW5zaWduZWRWYWx1ZSgqYnV0dG9uVmFsdWUpOwogICAgICAgICBpZiAoIWJ1dHRvbikg
ewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdidXR0
b24nIGlzIGludmFsaWQgZm9yIHBvaW50ZXIgdXAvZG93biBhY3Rpb24iKTsKKyAgICAgICAgICAg
IGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnYnV0dG9uJyBpcyBpbnZhbGlk
IGZvciBwb2ludGVyIHVwL2Rvd24gYWN0aW9uIl9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgICAgIH0KICAgICAgICAgYWN0aW9uLmJ1dHRvbiA9IGFjdGlvbk1vdXNl
QnV0dG9uKGJ1dHRvbi52YWx1ZSgpKTsKQEAgLTIxMDksNyArMjEwOSw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEFjdGlvbj4gcHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpT
T046Ok9iamVjdCYKICAgICBlbHNlIGlmIChzdWJ0eXBlID09ICJzY3JvbGwiKQogICAgICAgICBh
Y3Rpb25TdWJ0eXBlID0gQWN0aW9uOjpTdWJ0eXBlOjpTY3JvbGw7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAndHlwZScgb2Ygd2hlZWwg
YWN0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUg
cGFyYW1ldGVyICd0eXBlJyBvZiB3aGVlbCBhY3Rpb24gaXMgaW52YWxpZCJfcyk7CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMTI3LDcgKzIxMjcsNyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBY3Rpb24+IHByb2Nlc3NXaGVlbEFjdGlvbihjb25zdCBTdHJpbmcm
IGlkLCBKU09OOjpPYmplY3QmCiAgICAgICAgIGlmIChhdXRvIGRlbHRhWFZhbHVlID0gYWN0aW9u
SXRlbS5nZXRWYWx1ZSgiZGVsdGFYIl9zKSkgewogICAgICAgICAgICAgYXV0byBkZWx0YVggPSB2
YWx1ZUFzTnVtYmVySW5SYW5nZSgqZGVsdGFYVmFsdWUsIElOVF9NSU4pOwogICAgICAgICAgICAg
aWYgKCFkZWx0YVgpIHsKLSAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRo
ZSBwYXJhbWF0ZXIgJ2RlbHRhWCcgaXMgaW52YWxpZCBmb3IgYWN0aW9uIik7CisgICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1hdGVyICdkZWx0YVgnIGlzIGlu
dmFsaWQgZm9yIGFjdGlvbiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFjdGlvbi5kZWx0YVggPSBkZWx0YVgudmFs
dWUoKTsKQEAgLTIxMzYsNyArMjEzNiw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFjdGlvbj4g
cHJvY2Vzc1doZWVsQWN0aW9uKGNvbnN0IFN0cmluZyYgaWQsIEpTT046Ok9iamVjdCYKICAgICAg
ICAgaWYgKGF1dG8gZGVsdGFZVmFsdWUgPSBhY3Rpb25JdGVtLmdldFZhbHVlKCJkZWx0YVkiX3Mp
KSB7CiAgICAgICAgICAgICBhdXRvIGRlbHRhWSA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCpkZWx0
YVlWYWx1ZSwgSU5UX01JTik7CiAgICAgICAgICAgICBpZiAoIWRlbHRhWSkgewotICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtYXRlciAnZGVsdGFZJyBpcyBp
bnZhbGlkIGZvciBhY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWF0ZXIgJ2RlbHRhWScgaXMgaW52YWxpZCBmb3IgYWN0aW9uIl9zKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYWN0aW9uLmRlbHRhWSA9IGRlbHRhWS52YWx1ZSgpOwpAQCAtMjE2NCw3ICsyMTY0LDcg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nlc3NQb2ludGVy
UGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKIAogICAgIGF1dG8gcGFyYW1ldGVyc0RhdGEgPSBw
YXJhbWV0ZXJzRGF0YVZhbHVlLT5hc09iamVjdCgpOwogICAgIGlmICghcGFyYW1ldGVyc0RhdGEp
IHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRl
ciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
U3RyaW5nKCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBwYXJhbWV0ZXJzIGlzIG5vdCBhbiBvYmpl
Y3QiX3MpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjE3OSw3
ICsyMTc5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UG9pbnRlclBhcmFtZXRlcnM+IHByb2Nl
c3NQb2ludGVyUGFyYW1ldGVycyhKU09OOjpPYmplY3QmIGEKICAgICBlbHNlIGlmIChwb2ludGVy
VHlwZSA9PSAidG91Y2giKQogICAgICAgICBwYXJhbWV0ZXJzLnBvaW50ZXJUeXBlID0gUG9pbnRl
clR5cGU6OlRvdWNoOwogICAgIGVsc2UgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
IlRoZSBwYXJhbWV0ZXIgJ3BvaW50ZXJUeXBlJyBpbiBhY3Rpb24gc2VxdWVuY2UgcG9pbnRlciBw
YXJhbWV0ZXJzIGlzIGludmFsaWQiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJU
aGUgcGFyYW1ldGVyICdwb2ludGVyVHlwZScgaW4gYWN0aW9uIHNlcXVlbmNlIHBvaW50ZXIgcGFy
YW1ldGVycyBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxB
Y3Rpb24+PiBwcm9jZXNzSW5wdXRBY3Rpb25TZXF1ZW5jZShTZXNzaW9uJiBzZXNzaW9uCiB7CiAg
ICAgYXV0byBhY3Rpb25TZXF1ZW5jZSA9IGFjdGlvblNlcXVlbmNlVmFsdWUuYXNPYmplY3QoKTsK
ICAgICBpZiAoIWFjdGlvblNlcXVlbmNlKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmlu
ZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAgICAgIGVycm9y
TWVzc2FnZSA9IFN0cmluZygiVGhlIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0Il9z
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKQEAgLTIyMDUsMTMgKzIy
MDUsMTMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFjdGlvbj4+IHByb2Nlc3NJbnB1
dEFjdGlvblNlcXVlbmNlKFNlc3Npb24mIHNlc3Npb24KICAgICBlbHNlIGlmICh0eXBlID09ICJu
b25lIikKICAgICAgICAgaW5wdXRTb3VyY2VUeXBlID0gSW5wdXRTb3VyY2U6OlR5cGU6Ok5vbmU7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRl
ciAndHlwZScgaXMgaW52YWxpZCBvciBtaXNzaW5nIGluIGFjdGlvbiBzZXF1ZW5jZSIpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIlRoZSBwYXJhbWV0ZXIgJ3R5cGUnIGlzIGludmFs
aWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIH0KIAogICAgIGF1dG8gaWQgPSBhY3Rpb25TZXF1ZW5jZS0+Z2V0U3Ry
aW5nKCJpZCJfcyk7CiAgICAgaWYgKCFpZCkgewotICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJp
bmcoIlRoZSBwYXJhbWV0ZXIgJ2lkJyBpcyBpbnZhbGlkIG9yIG1pc3NpbmcgaW4gYWN0aW9uIHNl
cXVlbmNlIik7CisgICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhlIHBhcmFtZXRlciAn
aWQnIGlzIGludmFsaWQgb3IgbWlzc2luZyBpbiBhY3Rpb24gc2VxdWVuY2UiX3MpOwogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIApAQCAtMjIyNywxOCArMjIyNywxOCBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0QWN0aW9uU2Vx
dWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogCiAgICAgYXV0byYgaW5wdXRTb3VyY2UgPSBzZXNzaW9u
LmdldE9yQ3JlYXRlSW5wdXRTb3VyY2UoaWQsIGlucHV0U291cmNlVHlwZSwgcG9pbnRlclR5cGUp
OwogICAgIGlmIChpbnB1dFNvdXJjZS50eXBlICE9IGlucHV0U291cmNlVHlwZSkgewotICAgICAg
ICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBzZXF1ZW5jZSB0eXBlIGRvZXNuJ3QgbWF0
Y2ggaW5wdXQgc291cmNlIHR5cGUiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJB
Y3Rpb24gc2VxdWVuY2UgdHlwZSBkb2Vzbid0IG1hdGNoIGlucHV0IHNvdXJjZSB0eXBlIl9zKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBpZiAoaW5wdXRTb3Vy
Y2UudHlwZSA9PSAgSW5wdXRTb3VyY2U6OlR5cGU6OlBvaW50ZXIgJiYgaW5wdXRTb3VyY2UucG9p
bnRlclR5cGUgIT0gcG9pbnRlclR5cGUpIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCJBY3Rpb24gc2VxdWVuY2UgcG9pbnRlciB0eXBlIGRvZXNuJ3QgbWF0Y2ggaW5wdXQgc291cmNl
IHBvaW50ZXIgdHlwZSIpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoIkFjdGlvbiBz
ZXF1ZW5jZSBwb2ludGVyIHR5cGUgZG9lc24ndCBtYXRjaCBpbnB1dCBzb3VyY2UgcG9pbnRlciB0
eXBlIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKICAgICBhdXRv
IGFjdGlvbkl0ZW1zID0gYWN0aW9uU2VxdWVuY2UtPmdldEFycmF5KCJhY3Rpb25zIl9zKTsKICAg
ICBpZiAoIWFjdGlvbkl0ZW1zKSB7Ci0gICAgICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZygiVGhl
IHBhcmFtZXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCBpbiBhY3Rpb24g
c2VxdWVuY2UiKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJUaGUgcGFyYW1ldGVy
ICdhY3Rpb25zJyBpcyBpbnZhbGlkIG9yIG5vdCBwcmVzZW50IGluIGFjdGlvbiBzZXF1ZW5jZSJf
cyk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0yMjQ3LDcgKzIy
NDcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8QWN0aW9uPj4gcHJvY2Vzc0lucHV0
QWN0aW9uU2VxdWVuY2UoU2Vzc2lvbiYgc2Vzc2lvbgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBhY3Rpb25JdGVtc0xlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gYWN0aW9uSXRlbSA9
IGFjdGlvbkl0ZW1zLT5nZXQoaSktPmFzT2JqZWN0KCk7CiAgICAgICAgIGlmICghYWN0aW9uSXRl
bSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCJBbiBhY3Rpb24gaW4gYWN0
aW9uIHNlcXVlbmNlIGlzIG5vdCBhbiBvYmplY3QiKTsKKyAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IFN0cmluZygiQW4gYWN0aW9uIGluIGFjdGlvbiBzZXF1ZW5jZSBpcyBub3QgYW4gb2JqZWN0
Il9zKTsKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIH0KIApAQCAt
MjI3OCw3ICsyMjc4LDcgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwZXJmb3JtQWN0aW9ucyhS
ZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW8KIAogICAgIGF1dG8gYWN0
aW9uc0FycmF5ID0gcGFyYW1ldGVycy0+Z2V0QXJyYXkoImFjdGlvbnMiX3MpOwogICAgIGlmICgh
YWN0aW9uc0FycmF5KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygi
VGhlIHBhcmFtYXRlciAnYWN0aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCIpKSk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3Vs
dDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJndW1lbnQsIFN0cmluZygiVGhlIHBhcmFtYXRlciAnYWN0
aW9ucycgaXMgaW52YWxpZCBvciBub3QgcHJlc2VudCJfcykpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9ndGsvV2ViRHJpdmVyU2Vydmlj
ZUd0ay5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApp
bmRleCBhMDlkMDk0MWJhN2ZkMjllYmJlMzFmNzM2ZmM5YWRmZGVjZTg5NmJlLi5kYjk3ZmYwZmEy
OTExYWYxOTFiOTM2NzAxNmYxZTU2MWU3NTIzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL2d0ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL2d0
ay9XZWJEcml2ZXJTZXJ2aWNlR3RrLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6
cGxhdGZvcm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7
Ci0gICAgY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBj
YXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJp
bGl0aWVzLnNldFdpbmRvd1JlY3QgPSB0cnVlOwogICAgIHJldHVybiBjYXBhYmlsaXRpZXM7CiB9
CkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBXZWJEcml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybU1hdGNo
Q2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWY8SlNPTjo6VmEKIAogdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVj
dCYgbWF0Y2hlZENhcGFiaWxpdGllcywgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpIGNvbnN0
CiB7Ci0gICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJCaW5hcnkgPSBTdHJpbmcoTElCRVhFQ0RJUiAi
L3dlYmtpdDJndGstIiBXRUJLSVRHVEtfQVBJX1ZFUlNJT05fU1RSSU5HICIvTWluaUJyb3dzZXIi
KTsKKyAgICBjYXBhYmlsaXRpZXMuYnJvd3NlckJpbmFyeSA9IFN0cmluZyhMSUJFWEVDRElSICIv
d2Via2l0Mmd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lPTl9TVFJJTkcgIi9NaW5pQnJvd3NlciJf
cyk7CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7
ICItLWF1dG9tYXRpb24iX3MgfTsKICAgICBjYXBhYmlsaXRpZXMudXNlT3ZlcmxheVNjcm9sbGJh
cnMgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3dpbi9XZWJEcml2ZXJT
ZXJ2aWNlV2luLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4u
Y3BwCmluZGV4IDkzNjcxMmYyZjEzNWVmMWM5ODNkY2E3NTQxYjhkNDc0YzRmMTk2YmYuLmFiMjE2
NzFjY2FkYTI1ZTczNzFmNjM2NTgyYWYzNDNkZjczYmJkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2
ZXIvd2luL1dlYkRyaXZlclNlcnZpY2VXaW4uY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6cGxhdGZvcm1Jbml0KCkKIENhcGFiaWxpdGllcyBXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybUNhcGFiaWxpdGllcygpCiB7CiAgICAgQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllczsKLSAgICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iKTsKKyAg
ICBjYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJ3aW4iX3MpOwogICAgIGNhcGFi
aWxpdGllcy5zZXRXaW5kb3dSZWN0ID0gdHJ1ZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci93cGUvV2ViRHJpdmVyU2VydmljZVdQRS5j
cHAgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAppbmRleCA2
NTZhNjc2YWIyY2ExMmEwMDVmYWMwOTBjN2U2NmUwZTYzNjU5M2VhLi5kYzkxZmIzY2I1MjdmZGVm
N2UzZTJkNzQwNWE1ZTZkMmViMjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL3dw
ZS9XZWJEcml2ZXJTZXJ2aWNlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL3dwZS9XZWJE
cml2ZXJTZXJ2aWNlV1BFLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnBsYXRmb3JtSW5pdCgpCiBDYXBhYmlsaXRpZXMgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZv
cm1DYXBhYmlsaXRpZXMoKQogewogICAgIENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Ci0gICAg
Y2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZSA9IFN0cmluZygibGludXgiKTsKKyAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gU3RyaW5nKCJsaW51eCJfcyk7CiAgICAgY2FwYWJpbGl0aWVz
LnNldFdpbmRvd1JlY3QgPSBmYWxzZTsKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQpAQCAt
MTA1LDcgKzEwNSw3IEBAIGJvb2wgV2ViRHJpdmVyU2VydmljZTo6cGxhdGZvcm1NYXRjaENhcGFi
aWxpdHkoY29uc3QgU3RyaW5nJiwgY29uc3QgUmVmPEpTT046OlZhCiAKIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6cGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1h
dGNoZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewot
ICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciIpOwor
ICAgIGNhcGFiaWxpdGllcy5icm93c2VyQmluYXJ5ID0gU3RyaW5nKCJNaW5pQnJvd3NlciJfcyk7
CiAgICAgY2FwYWJpbGl0aWVzLmJyb3dzZXJBcmd1bWVudHMgPSBWZWN0b3I8U3RyaW5nPiB7ICIt
LWF1dG9tYXRpb24iX3MgfTsKIAogICAgIGF1dG8gYnJvd3Nlck9wdGlvbnMgPSBtYXRjaGVkQ2Fw
YWJpbGl0aWVzLmdldE9iamVjdCgid3BlOmJyb3dzZXJPcHRpb25zIl9zKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3Vw
LmNwcAppbmRleCAxZjBiN2U0ZTk5ZWNkMzBkODVlYjY1NjI4OGI1NjNkNDIzOTBjZDc4Li4zMDlk
YWMwNzlkZDI4N2I4NDFhODIwMTczYjU3NGM3NThlNTA5ZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3Bw
CkBAIC05MzEsNyArOTMxLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUhU
VFBSZWRpcmVjdGlvbigpCiAjaWYgVVNFKFNPVVAyKQogICAgICAgICBkaWRGYWlsKFJlc291cmNl
RXJyb3I6OnRyYW5zcG9ydEVycm9yKG1fY3VycmVudFJlcXVlc3QudXJsKCksIFNPVVBfU1RBVFVT
X1RPT19NQU5ZX1JFRElSRUNUUywgIlRvbyBtYW55IHJlZGlyZWN0cyJfcykpOwogI2Vsc2UKLSAg
ICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdfcXVhcmtfdG9fc3RyaW5nKFNP
VVBfU0VTU0lPTl9FUlJPUikgfSwgU09VUF9TRVNTSU9OX0VSUk9SX1RPT19NQU5ZX1JFRElSRUNU
UywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOCgiVG9vIG1hbnkgcmVk
aXJlY3RzIikpKTsKKyAgICAgICAgZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxh
dGluMShnX3F1YXJrX3RvX3N0cmluZyhTT1VQX1NFU1NJT05fRVJST1IpKSwgU09VUF9TRVNTSU9O
X0VSUk9SX1RPT19NQU5ZX1JFRElSRUNUUywgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgU3RyaW5n
Ojpmcm9tVVRGOCgiVG9vIG1hbnkgcmVkaXJlY3RzIikpKTsKICNlbmRpZgogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMTAzNyw3ICsxMDM3LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3Vw
OjpyZWFkQ2FsbGJhY2soR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0FzeW5jUmVzdWx0Kgog
ICAgICAgICBpZiAodGFzay0+bV9zb3VwTWVzc2FnZSkKICAgICAgICAgICAgIHRhc2stPmRpZEZh
aWwoUmVzb3VyY2VFcnJvcjo6Z2VuZXJpY0dFcnJvcih0YXNrLT5tX2N1cnJlbnRSZXF1ZXN0LnVy
bCgpLCBlcnJvci5nZXQoKSkpOwogICAgICAgICBlbHNlIGlmICh0YXNrLT5tX2ZpbGUpCi0gICAg
ICAgICAgICB0YXNrLT5kaWRGYWlsKFJlc291cmNlRXJyb3IoU3RyaW5nIHsgZ19xdWFya190b19z
dHJpbmcoZXJyb3ItPmRvbWFpbikgfSwgZXJyb3ItPmNvZGUsIHRhc2stPm1fZmlyc3RSZXF1ZXN0
LnVybCgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSkpOworICAgICAgICAgICAg
dGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1YXJrX3Rv
X3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0UmVxdWVz
dC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9IGVsc2Ug
aWYgKGJ5dGVzUmVhZCA+IDApCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIE5ldHdvcmtEYXRh
VGFza1NvdXA6OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1
dFN0cmVhbQogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9
IFdURk1vdmUoaW5wdXRTdHJlYW0pOwogICAgIGF1dG8qIGhlYWRlcnMgPSBzb3VwX211bHRpcGFy
dF9pbnB1dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7
Ci0gICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZSho
ZWFkZXJzLCAiQ29udGVudC1UeXBlIikgfTsKKyAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3RyaW5n
Ojpmcm9tTGF0aW4xKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRl
bnQtVHlwZSIpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX2ZpcnN0UmVx
dWVzdC51cmwoKSwgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSksCiAg
ICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChoZWFkZXJzKSwg
ZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAg
ICBtX3Jlc3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoaGVhZGVycyk7CkBAIC0x
MjQ5LDcgKzEyNDksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMo
KQogICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgICAgICBjb25zdCBjaGFyKiBo
ZWFkZXJWYWx1ZTsKICAgICAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4
dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQotICAgICAgICAgICAg
cmVxdWVzdEhlYWRlcnMuc2V0KFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5nKGhlYWRlclZhbHVl
KSk7CisgICAgICAgICAgICByZXF1ZXN0SGVhZGVycy5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGhl
YWRlck5hbWUpLCBTdHJpbmc6OmZyb21MYXRpbjEoaGVhZGVyVmFsdWUpKTsKICAgICAgICAgYWRk
aXRpb25hbE1ldHJpY3MucmVxdWVzdEhlYWRlcnMgPSBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKTsK
IAogICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy5wcmlvcml0eSA9IHRvTmV0d29ya0xvYWRQcmlv
cml0eShzb3VwX21lc3NhZ2VfZ2V0X3ByaW9yaXR5KG1fc291cE1lc3NhZ2UuZ2V0KCkpKTsKQEAg
LTE2OTEsNyArMTY5MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkR2V0RmlsZUlu
Zm8oR0ZpbGVJbmZvKiBpbmZvKQogICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKCJ0ZXh0
L2h0bWwiX3MpOwogICAgICAgICBtX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCgt
MSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlIHsgZ19maWxlX2lu
Zm9fZ2V0X2NvbnRlbnRfdHlwZShpbmZvKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0g
U3RyaW5nOjpmcm9tTGF0aW4xKGdfZmlsZV9pbmZvX2dldF9jb250ZW50X3R5cGUoaW5mbykpOwog
ICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5
cGUoY29udGVudFR5cGUpKTsKICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1l
KGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkudG9TdHJpbmcoKSk7CiAg
ICAgICAgIGlmIChtX3Jlc3BvbnNlLm1pbWVUeXBlKCkuaXNFbXB0eSgpKQpAQCAtMTcxOSw3ICsx
NzE5LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZWFkRmlsZUNhbGxiYWNrKEdGaWxl
KiBmaWxlLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgTmUKICAgICBHVW5pcXVlT3V0UHRyPEdFcnJv
cj4gZXJyb3I7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRH
UmVmKEdfSU5QVVRfU1RSRUFNKGdfZmlsZV9yZWFkX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJv
ci5vdXRQdHIoKSkpKTsKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIHRhc2stPmRpZEZhaWwoUmVz
b3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9LCBl
cnJvci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgo
ZXJyb3ItPm1lc3NhZ2UpKSk7CisgICAgICAgIHRhc2stPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihT
dHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbikpLCBlcnJv
ci0+Y29kZSwgdGFzay0+bV9maXJzdFJlcXVlc3QudXJsKCksIFN0cmluZzo6ZnJvbVVURjgoZXJy
b3ItPm1lc3NhZ2UpKSk7CiAgICAgZWxzZQogICAgICAgICB0YXNrLT5kaWRSZWFkRmlsZShXVEZN
b3ZlKGlucHV0U3RyZWFtKSk7CiB9CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza1NvdXA6OmVudW1lcmF0ZUZpbGVDaGlsZHJlbkNhbGxiYWNrKEdGaWxlKiBmaWxlLCBH
QXN5bmNSZXN1bAogICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKICAgICBHUmVmUHRy
PEdGaWxlRW51bWVyYXRvcj4gZW51bWVyYXRvciA9IGFkb3B0R1JlZihnX2ZpbGVfZW51bWVyYXRl
X2NoaWxkcmVuX2ZpbmlzaChmaWxlLCByZXN1bHQsICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlm
IChlcnJvcikKLSAgICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZyB7IGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pIH0sIGVycm9yLT5jb2RlLCB0YXNrLT5tX2Zp
cnN0UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKKyAg
ICAgICAgdGFzay0+ZGlkRmFpbChSZXNvdXJjZUVycm9yKFN0cmluZzo6ZnJvbUxhdGluMShnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSksIGVycm9yLT5jb2RlLCB0YXNrLT5tX2ZpcnN0
UmVxdWVzdC51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpKTsKICAgICBl
bHNlCiAgICAgICAgIHRhc2stPmRpZFJlYWRGaWxlKHdlYmtpdERpcmVjdG9yeUlucHV0U3RyZWFt
TmV3KFdURk1vdmUoZW51bWVyYXRvciksIHRhc2stPm1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggOTdmMDk4NTRjZjVlM2UyOGZlMDJl
YmNmOTIyMWIzNWRiMmUwOWFiNi4uNmVlYzM3MmZjZjU1NjIxZDQ1MzU4MjI0MDVkNDZjMDRlM2Fm
MDIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNv
Y2tldFRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
V2ViU29ja2V0VGFza1NvdXAuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBXZWJTb2NrZXRU
YXNrOjpkaWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdldCgpLCAi
ZXJyb3IiLCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkUmVjZWl2ZUVycm9yQ2FsbGJh
Y2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25uZWN0aW9uLmdl
dCgpLCAiY2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENsb3NlQ2FsbGJh
Y2spLCB0aGlzKTsKIAotICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZyB7IHNvdXBfd2Vi
c29ja2V0X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSkgfSwgYWNj
ZXB0ZWRFeHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KFN0cmluZzo6ZnJv
bUxhdGluMShzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rp
b24uZ2V0KCkpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCkpOwogCiAgICAgbV9jaGFubmVsLmRpZFJl
Y2VpdmVIYW5kc2hha2VSZXNwb25zZShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdf
c2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0
KCksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAK
aW5kZXggOGJlNWU2Njg2NTkwYTc2MTM3NGQ1OWFkMzg3ZDg2YmZiYWZiYjI2OC4uYTcwNjU0MDU3
YmNmMGNjMWNhZjExODllNDkwMGMwZGVhNzM0MDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAg
cmV0dXJuIFN0cmluZyB7IGdldGVudigiV0VCS0lUX0RFQlVHIikgfTsKKyAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tTGF0aW4xKGdldGVudigiV0VCS0lUX0RFQlVHIikpOwogI2Vsc2UKICAgICByZXR1
cm4gU3RyaW5nKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
dW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9T
aGFyZWRNZW1vcnlVbml4LmNwcAppbmRleCBmZTliNzgwMjYwOTNlNjgyYzE2OTEzNWEwZjAwMDcz
Zjg0Y2Q4NjM2Li45MzQ1YTQ3ZDA4ZGM5Zjg2OGVkM2MyYzY2YjZmM2Q5OGZhNDliYzZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL1NhZmVTdHJlcnJvci5oPgogI2luY2x1ZGUg
PHd0Zi9VbmlTdGRFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBIQVZFKExJTlVYX01FTUZEX0gpCkBAIC0xNTMsNyAr
MTU0LDcgQEAgc3RhdGljIGludCBjcmVhdGVTaGFyZWRNZW1vcnkoKQogI2Vsc2UKICAgICBDU3Ry
aW5nIHRlbXBOYW1lOwogICAgIGZvciAoaW50IHRyaWVzID0gMDsgZmlsZURlc2NyaXB0b3IgPT0g
LTEgJiYgdHJpZXMgPCAxMDsgKyt0cmllcykgewotICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmlu
ZygiL1dLMlNoYXJlZE1lbW9yeS4iKSArIFN0cmluZzo6bnVtYmVyKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihXVEY6OnJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+
OjptYXgoKSArIDEuMCkpKTsKKyAgICAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZygiL1dLMlNo
YXJlZE1lbW9yeS4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV1RGOjpyYW5kb21OdW1iZXIoKSAq
IChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSk7CiAgICAgICAg
IHRlbXBOYW1lID0gbmFtZS51dGY4KCk7CiAKICAgICAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBmZjIyMWNh
NDlhM2M2MjhkMGRiZjZiMDkyZGIyN2IwNDhhYTViMzFjLi5hMTVkNzU2MGQ0NjU4M2M1YzAzYWE2
MGE2MDAzYWNjOGQ2NDU5Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Z2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Z2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgd2Via2l0
X3VyaV9yZXF1ZXN0X3NldF91cmkoV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hh
ciogdXJpKQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVl
c3QpKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsIHsgU3RyaW5n
IHsgdXJpIH0gfTsKKyAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tTGF0aW4xKHVyaSkgfTsKICAg
ICBpZiAodXJsID09IHJlcXVlc3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJN
ZW1vcnlTYW1wbGVyTGludXguY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVt
b3J5U2FtcGxlckxpbnV4LmNwcAppbmRleCA3ZjAwZWZmZGVkODdhZDg1NjAyODY3YWQwNjhjZGZk
ZmJmYTk0YzU4Li5kMGI0OTAyNjBhMDQ1YWY5NGFmMTJmNDA5NGU3NDg4Y2ZlNjE3YTQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgbmV4dFRva2VuKEZJ
TEUqIGZpbGUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlcik7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbUxhdGluMShidWZmZXIpOwogfQogCiBzdGF0aWMgaW5s
aW5lIHZvaWQgYXBwZW5kS2V5VmFsdWVQYWlyKFdlYk1lbW9yeVN0YXRpc3RpY3MmIHN0YXRzLCBj
b25zdCBTdHJpbmcmIGtleSwgc2l6ZV90IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93
aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCAwZmIzMDdjNjY0N2ZmODZlYjFjMDY4YmMwNmM2
YjFhMGIzMmM1NzcwLi45MGRmMDkzYTQ5YzA5ZGM2NzBkZmVhNTUwNzdjNzdkODg5ZGQxYzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMjM0
LDk4ICsyMzQsOTggQEAgc3RhdGljIFN0cmluZyBrZXlJZGVudGlmaWVyRnJvbUV2ZW50KFdQQVJB
TSB3cGFyYW0sIFdlYkV2ZW50OjpUeXBlIHR5cGUpCiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29k
ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIHNob3J0Pih3cGFyYW0pOwogICAgIHN3aXRjaCAoa2V5
Q29kZSkgewogICAgIGNhc2UgVktfTUVOVToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7
CisgICAgICAgIHJldHVybiAiQWx0Il9zOwogICAgIGNhc2UgVktfQ09OVFJPTDoKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiQ29udHJvbCIpOworICAgICAgICByZXR1cm4gIkNvbnRyb2wiX3M7CiAg
ICAgY2FzZSBWS19TSElGVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKyAgICAg
ICAgcmV0dXJuICJTaGlmdCJfczsKICAgICBjYXNlIFZLX0NBUElUQUw6Ci0gICAgICAgIHJldHVy
biBTdHJpbmcoIkNhcHNMb2NrIik7CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CiAgICAg
Y2FzZSBWS19MV0lOOgogICAgIGNhc2UgVktfUldJTjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
V2luIik7CisgICAgICAgIHJldHVybiAiV2luIl9zOwogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcoIkNsZWFyIik7CisgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAg
ICAgY2FzZSBWS19ET1dOOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJEb3duIik7CisgICAgICAg
IHJldHVybiAiRG93biJfczsKICAgICBjYXNlIFZLX0VORDoKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZygiRW5kIik7CisgICAgICAgIHJldHVybiAiRW5kIl9zOwogICAgIGNhc2UgVktfUkVUVVJOOgot
ICAgICAgICByZXR1cm4gU3RyaW5nKCJFbnRlciIpOworICAgICAgICByZXR1cm4gIkVudGVyIl9z
OwogICAgIGNhc2UgVktfRVhFQ1VURToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRXhlY3V0ZSIp
OworICAgICAgICByZXR1cm4gIkV4ZWN1dGUiX3M7CiAgICAgY2FzZSBWS19GMToKLSAgICAgICAg
cmV0dXJuIFN0cmluZygiRjEiKTsKKyAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICBjYXNlIFZL
X0YyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMiIpOworICAgICAgICByZXR1cm4gIkYyIl9z
OwogICAgIGNhc2UgVktfRjM6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYzIik7CisgICAgICAg
IHJldHVybiAiRjMiX3M7CiAgICAgY2FzZSBWS19GNDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygi
RjQiKTsKKyAgICAgICAgcmV0dXJuICJGNCJfczsKICAgICBjYXNlIFZLX0Y1OgotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJGNSIpOworICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgIGNhc2UgVktf
RjY6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkY2Iik7CisgICAgICAgIHJldHVybiAiRjYiX3M7
CiAgICAgY2FzZSBWS19GNzoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjciKTsKKyAgICAgICAg
cmV0dXJuICJGNyJfczsKICAgICBjYXNlIFZLX0Y4OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJG
OCIpOworICAgICAgICByZXR1cm4gIkY4Il9zOwogICAgIGNhc2UgVktfRjk6Ci0gICAgICAgIHJl
dHVybiBTdHJpbmcoIkY5Iik7CisgICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgY2FzZSBWS19G
MTA6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIkYxMSIpOworICAgICAgICByZXR1cm4gIkYxMSJf
czsKICAgICBjYXNlIFZLX0YxMjoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjEyIik7CisgICAg
ICAgIHJldHVybiAiRjEyIl9zOwogICAgIGNhc2UgVktfRjEzOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJGMTMiKTsKKyAgICAgICAgcmV0dXJuICJGMTMiX3M7CiAgICAgY2FzZSBWS19GMTQ6Ci0g
ICAgICAgIHJldHVybiBTdHJpbmcoIkYxNCIpOworICAgICAgICByZXR1cm4gIkYxNCJfczsKICAg
ICBjYXNlIFZLX0YxNToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjE1Iik7CisgICAgICAgIHJl
dHVybiAiRjE1Il9zOwogICAgIGNhc2UgVktfRjE2OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJG
MTYiKTsKKyAgICAgICAgcmV0dXJuICJGMTYiX3M7CiAgICAgY2FzZSBWS19GMTc6Ci0gICAgICAg
IHJldHVybiBTdHJpbmcoIkYxNyIpOworICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICBjYXNl
IFZLX0YxODoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjE4Iik7CisgICAgICAgIHJldHVybiAi
RjE4Il9zOwogICAgIGNhc2UgVktfRjE5OgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMTkiKTsK
KyAgICAgICAgcmV0dXJuICJGMTkiX3M7CiAgICAgY2FzZSBWS19GMjA6Ci0gICAgICAgIHJldHVy
biBTdHJpbmcoIkYyMCIpOworICAgICAgICByZXR1cm4gIkYyMCJfczsKICAgICBjYXNlIFZLX0Yy
MToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiRjIxIik7CisgICAgICAgIHJldHVybiAiRjIxIl9z
OwogICAgIGNhc2UgVktfRjIyOgotICAgICAgICByZXR1cm4gU3RyaW5nKCJGMjIiKTsKKyAgICAg
ICAgcmV0dXJuICJGMjIiX3M7CiAgICAgY2FzZSBWS19GMjM6Ci0gICAgICAgIHJldHVybiBTdHJp
bmcoIkYyMyIpOworICAgICAgICByZXR1cm4gIkYyMyJfczsKICAgICBjYXNlIFZLX0YyNDoKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygiRjI0Iik7CisgICAgICAgIHJldHVybiAiRjI0Il9zOwogICAg
IGNhc2UgVktfSEVMUDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiSGVscCIpOworICAgICAgICBy
ZXR1cm4gIkhlbHAiX3M7CiAgICAgY2FzZSBWS19IT01FOgotICAgICAgICByZXR1cm4gU3RyaW5n
KCJIb21lIik7CisgICAgICAgIHJldHVybiAiSG9tZSJfczsKICAgICBjYXNlIFZLX0lOU0VSVDoK
LSAgICAgICAgcmV0dXJuIFN0cmluZygiSW5zZXJ0Iik7CisgICAgICAgIHJldHVybiAiSW5zZXJ0
Il9zOwogICAgIGNhc2UgVktfTEVGVDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiTGVmdCIpOwor
ICAgICAgICByZXR1cm4gIkxlZnQiX3M7CiAgICAgY2FzZSBWS19ORVhUOgotICAgICAgICByZXR1
cm4gU3RyaW5nKCJQYWdlRG93biIpOworICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwogICAg
IGNhc2UgVktfUFJJT1I6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlBhZ2VVcCIpOworICAgICAg
ICByZXR1cm4gIlBhZ2VVcCJfczsKICAgICBjYXNlIFZLX1BBVVNFOgotICAgICAgICByZXR1cm4g
U3RyaW5nKCJQYXVzZSIpOworICAgICAgICByZXR1cm4gIlBhdXNlIl9zOwogICAgIGNhc2UgVktf
U05BUFNIT1Q6Ci0gICAgICAgIHJldHVybiBTdHJpbmcoIlByaW50U2NyZWVuIik7CisgICAgICAg
IHJldHVybiAiUHJpbnRTY3JlZW4iX3M7CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgcmV0
dXJuIFN0cmluZygiUmlnaHQiKTsKKyAgICAgICAgcmV0dXJuICJSaWdodCJfczsKICAgICBjYXNl
IFZLX1NDUk9MTDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiU2Nyb2xsIik7CisgICAgICAgIHJl
dHVybiAiU2Nyb2xsIl9zOwogICAgIGNhc2UgVktfU0VMRUNUOgotICAgICAgICByZXR1cm4gU3Ry
aW5nKCJTZWxlY3QiKTsKKyAgICAgICAgcmV0dXJuICJTZWxlY3QiX3M7CiAgICAgY2FzZSBWS19V
UDoKLSAgICAgICAgcmV0dXJuIFN0cmluZygiVXAiKTsKKyAgICAgICAgcmV0dXJuICJVcCJfczsK
ICAgICBjYXNlIFZLX0RFTEVURToKLSAgICAgICAgcmV0dXJuIFN0cmluZygiVSswMDdGIik7IC8v
IFN0YW5kYXJkIHNheXMgdGhhdCBERUwgYmVjb21lcyBVKzAwN0YuCisgICAgICAgIHJldHVybiAi
VSswMDdGIl9zOyAvLyBTdGFuZGFyZCBzYXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJVKyIsIGhleCh0b0FTQ0lJVXBw
ZXIoa2V5Q29kZSksIDQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA3NTMyZmY1
YmVkYmJkNDgzNGVlN2MxMTFjZmVkYjlhN2E4NGM2MDgxLi43ZTQyN2UwMDc3N2QwMjdkOTkyOWM0
ZTllNDQ0ODM3ZjNjNjkxNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKQEAgLTk0LDcgKzk0LDcg
QEAgV2ViS2l0UHJvdG9jb2xIYW5kbGVyOjpXZWJLaXRQcm90b2NvbEhhbmRsZXIoV2ViS2l0V2Vi
Q29udGV4dCogY29udGV4dCkKIAogdm9pZCBXZWJLaXRQcm90b2NvbEhhbmRsZXI6OmhhbmRsZVJl
cXVlc3QoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBVUkwgcmVxdWVz
dFVSTCA9IFVSTChTdHJpbmcgeyB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF91cmkocmVx
dWVzdCkgfSk7CisgICAgVVJMIHJlcXVlc3RVUkwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgIGlmIChyZXF1
ZXN0VVJMLmhvc3QoKSA9PSAiZ3B1IikgewogICAgICAgICBoYW5kbGVHUFUocmVxdWVzdCk7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5kZXggY2YyMDE3YWFlZGM1Zjdh
NDg2MTc5YjFjMzhkMDQzY2VmMjNiMjM0NC4uYzQxN2I3ZWI5NjQxZjVjMGJiOGI2MmExOWExMGQz
MjExZTFlOGM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRVUklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVh
bSogaW5wdXRTdHJlYW0sIEdBc3luYwogCiAgICAgV2ViS2l0VVJJU2NoZW1lUmVzcG9uc2UqIHJl
c3AgPSBwcml2LT5yZXNwb25zZS5nZXQoKTsKICAgICBpZiAoIXByaXYtPmJ5dGVzUmVhZCkgewot
ICAgICAgICBTdHJpbmcgY29udGVudFR5cGUgeyB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldENv
bnRlbnRUeXBlKHJlc3ApLmRhdGEoKSB9OworICAgICAgICBhdXRvIGNvbnRlbnRUeXBlID0gU3Ry
aW5nOjpmcm9tTGF0aW4xKHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0Q29udGVudFR5cGUocmVz
cCkuZGF0YSgpKTsKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShwcml2LT50YXNr
LT5yZXF1ZXN0KCkudXJsKCksIGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5
cGUpLCB3ZWJLaXRVUklTY2hlbWVSZXNwb25zZUdldFN0cmVhbUxlbmd0aChyZXNwKSwgZW1wdHlT
dHJpbmcoKSk7CiAgICAgICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKS50b1N0cmluZygpKTsKICAgICAgICAgY29u
c3QgQ1N0cmluZyYgc3RhdHVzTWVzc2FnZSA9IHdlYktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3Rh
dHVzTWVzc2FnZShyZXNwKTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRV
UklTY2hlbWVSZXF1ZXN0UmVhZENhbGxiYWNrKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdB
c3luYwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHdl
YktpdFVSSVNjaGVtZVJlc3BvbnNlR2V0U3RhdHVzQ29kZShyZXNwKSk7Ci0gICAgICAgICAgICBy
ZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChTdHJpbmcgeyBzdGF0dXNNZXNzYWdlLmRhdGEoKSB9
KTsKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KFN0cmluZzo6ZnJvbUxh
dGluMShzdGF0dXNNZXNzYWdlLmRhdGEoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNw
b25zZS5taW1lVHlwZSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldE1pbWVU
eXBlKE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChyZXNwb25zZS51cmwoKS5wYXRo
KCkudG9TdHJpbmcoKSkpOwpAQCAtMzExLDYgKzMxMSw2IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hl
bWVfcmVxdWVzdF9maW5pc2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwg
R0VyCiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3Qt
PnByaXY7CiAgICAgcHJpdi0+cmVzcG9uc2UgPSBudWxscHRyOwotICAgIFJlc291cmNlRXJyb3Ig
cmVzb3VyY2VFcnJvcihTdHJpbmcgeyBnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSB9
LCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVlc3QoKS51cmwo
KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFJlc291cmNlRXJyb3Ig
cmVzb3VyY2VFcnJvcihTdHJpbmc6OmZyb21MYXRpbjEoZ19xdWFya190b19zdHJpbmcoZXJyb3It
PmRvbWFpbikpLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnRhc2stPnJlcXVl
c3QoKS51cmwoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogICAgIHByaXYt
PnRhc2stPmRpZENvbXBsZXRlKHJlc291cmNlRXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRSZW1vdGVJ
bnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwCmluZGV4IGFjMmFhOWYzNTZlYTAwNTBjZGRhZDBm
M2EyNzIzYzEyODMwZDJkMDkuLjE1YjM3MzBhYTFhNjBkYTE1NzJkMDZhYzFkNThlYTIwYTdlYjhk
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAg
LTEwMiw3ICsxMDIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dXNl
ckNvbnRlbnRNYW5hZ2VyRGVzdHJveWVkKFJlbW90ZUluc3BlY3RvcgogCiB2b2lkIFJlbW90ZUlu
c3BlY3RvclByb3RvY29sSGFuZGxlcjo6aGFuZGxlUmVxdWVzdChXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0KiByZXF1ZXN0KQogewotICAgIFVSTCByZXF1ZXN0VVJMID0gVVJMKFN0cmluZyB7IHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAgICBVUkwgcmVxdWVz
dFVSTCA9IFVSTChTdHJpbmc6OmZyb21MYXRpbjEod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9n
ZXRfdXJpKHJlcXVlc3QpKSk7CiAgICAgaWYgKCFyZXF1ZXN0VVJMLnBvcnQoKSkgewogICAgICAg
ICBHVW5pcXVlUHRyPEdFcnJvcj4gZXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChXRUJLSVRfUE9M
SUNZX0VSUk9SLCBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSSwgIkNhbm5vdCBz
aG93IGluc3BlY3RvciBVUkw6IG5vIHBvcnQgcHJvdmlkZWQiKSk7CiAgICAgICAgIHdlYmtpdF91
cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yKHJlcXVlc3QsIGVycm9yLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Q29sb3IuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKaW5kZXgg
MjJmYzBhOGRmYjA4ZWIyYWRiNDBiOTBjNWIzMTQzNmFlZTI5Y2MxZi4uMjI3NWQ3NDg1YzEyNGM3
ZjMxNDRlNjU4ODM1NTQ1Zjg4ODRmYzA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRDb2xvci5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBnYm9vbGVhbiB3
ZWJraXRfY29sb3JfcGFyc2UoV2ViS2l0Q29sb3IqIGNvbG9yLCBjb25zdCBnY2hhciogY29sb3JT
dHJpbmcpCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29sb3IsIEZBTFNFKTsKICAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChjb2xvclN0cmluZywgRkFMU0UpOwogCi0gICAgYXV0byB3ZWJDb3Jl
Q29sb3IgPSBXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ29sb3JXaXRob3V0Q29udGV4dChTdHJp
bmcgeyBjb2xvclN0cmluZyB9KTsKKyAgICBhdXRvIHdlYkNvcmVDb2xvciA9IFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VDb2xvcldpdGhvdXRDb250ZXh0KFN0cmluZzo6ZnJvbUxhdGluMShjb2xv
clN0cmluZykpOwogICAgIGlmICghd2ViQ29yZUNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0
dXJuIEZBTFNFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dl
YlByb2Nlc3NQb29sR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlBy
b2Nlc3NQb29sR0xpYi5jcHAKaW5kZXggOTMzMjMyZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4
M2RlZGJmNy4uNGVlM2E1YjAwM2JkMGZjM2M1NTU2YzU1N2E3YTdjZjhkM2ZmYWY1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNw
cApAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgaWYgKCFw
YXJhbWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nlc3MpIHsKICAgICAgICAgcGFyYW1ldGVycy5o
b3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlw
dG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9y
OjpBZG9wdCkpOwotICAgICAgICBwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUg
PSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oU3RyaW5nIHsgd3BlX2xvYWRl
cl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpIH0pOworICAgICAgICBw
YXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oU3RyaW5nOjpmcm9tTGF0aW4xKHdwZV9sb2FkZXJfZ2V0X2xvYWRl
ZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC04
OSw3ICs4OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAgICAgIHdwZV9sb2FkZXJf
aW5pdCgibGliV1BFQmFja2VuZC1mZG8tMS4wLnNvLjEiKTsKICAgICAgICAgaWYgKEFjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6Y2hlY2tSZXF1aXJlbWVudHMoKSkgewogICAgICAgICAg
ICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQo
VW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5p
eEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwotICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1l
bnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KFN0cmluZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25h
bWUoKSB9KTsKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFt
ZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmc6OmZyb21MYXRp
bjEod3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKSk7
CiAgICAgICAgIH0KICNlbGlmIFVTRShFR0wpCiAgICAgICAgIHBhcmFtZXRlcnMud2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5TmFtZSA9IFdheWxhbmRDb21wb3NpdG9yOjpzaW5nbGV0b24oKS5kaXNw
bGF5TmFtZSgpOwpAQCAtMTE2LDggKzExNiw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAK
ICAgICBHQXBwbGljYXRpb24qIGFwcCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKICAg
ICBpZiAoYXBwKQotICAgICAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQgPSBTdHJpbmcgeyBn
X2FwcGxpY2F0aW9uX2dldF9hcHBsaWNhdGlvbl9pZChhcHApIH07Ci0gICAgcGFyYW1ldGVycy5h
cHBsaWNhdGlvbk5hbWUgPSBTdHJpbmcgeyBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCkgfTsKKyAg
ICAgICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbklEID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfYXBw
bGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lkKGFwcCkpOworICAgIHBhcmFtZXRlcnMuYXBwbGlj
YXRpb25OYW1lID0gU3RyaW5nOjpmcm9tTGF0aW4xKGdfZ2V0X2FwcGxpY2F0aW9uX25hbWUoKSk7
CiAKICAgICBwYXJhbWV0ZXJzLmluc3BlY3RvclNlcnZlckFkZHJlc3MgPSBJbnNwZWN0b3I6OlJl
bW90ZUluc3BlY3Rvcjo6aW5zcGVjdG9yU2VydmVyQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQuY3BwCmluZGV4IDgxNzFlZjYyY2M3N2MwYjExMmZkZTYxYzkzNmNmM2IwZGZkN2E1
ZjYuLjEzYjkwMjkyODc2NzU3MDgyNmQxYTQ4NTlhYmRjMTViMzllMGJhYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxh
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tp
bmdTdG9yZVdheWxhbmQuY3BwCkBAIC04NCwxNCArODQsMTQgQEAgc3RhdGljIGJvb2wgaXNFR0xJ
bWFnZUF2YWlsYWJsZShib29sIHVzZUluZGV4ZWRHZXRTdHJpbmcpCiAgICAgICAgIEdMaW50IG51
bUV4dGVuc2lvbnMgPSAwOwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTlVNX0VYVEVOU0lP
TlMsICZudW1FeHRlbnNpb25zKTsKICAgICAgICAgZm9yIChHTGludCBpID0gMDsgaSA8IG51bUV4
dGVuc2lvbnM7ICsraSkgewotICAgICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IFN0cmluZyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZ2koR0xfRVhURU5TSU9OUywg
aSkpKTsKKyAgICAgICAgICAgIFN0cmluZyBleHRlbnNpb24gPSBTdHJpbmc6OmZyb21MYXRpbjEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xHZXRTdHJpbmdpKEdMX0VYVEVOU0lPTlMs
IGkpKSk7CiAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9uID09ICJHTF9PRVNfRUdMX2ltYWdlIiB8
fCBleHRlbnNpb24gPT0gIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0g
ICAgICAgIFN0cmluZyBleHRlbnNpb25zU3RyaW5nID0gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKKyAgICAgICAgU3Ry
aW5nIGV4dGVuc2lvbnNTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBm
b3IgKGF1dG8mIGV4dGVuc2lvbiA6IGV4dGVuc2lvbnNTdHJpbmcuc3BsaXQoJyAnKSkgewogICAg
ICAgICAgICAgaWYgKGV4dGVuc2lvbiA9PSAiR0xfT0VTX0VHTF9pbWFnZSIgfHwgZXh0ZW5zaW9u
ID09ICJHTF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsIikKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9LZXlCaW5kaW5n
VHJhbnNsYXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFu
c2xhdG9yLmgKaW5kZXggZmUwNGMxZmY0NDE2MWMwNzZmNTM3ZGE1MTNjYzJkNzE1Y2E5MDAzZS4u
YmU5YmE0YzYwOTIwYjRmNzg4YTJhYmM1OTA4ZDZkZmFjMDQ4ZjEyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gY29tbWFuZHNGb3JL
ZXl2YWwodW5zaWduZWQga2V5dmFsLCB1bnNpZ25lZCBtb2RpZmllcnMpOwogCi0gICAgdm9pZCBh
ZGRQZW5kaW5nRWRpdG9yQ29tbWFuZChjb25zdCBjaGFyKiBjb21tYW5kKSB7IG1fcGVuZGluZ0Vk
aXRvckNvbW1hbmRzLmFwcGVuZChjb21tYW5kKTsgfQorICAgIHZvaWQgYWRkUGVuZGluZ0VkaXRv
ckNvbW1hbmQoY29uc3QgY2hhciogY29tbWFuZCkgeyBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5h
cHBlbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGNvbW1hbmQpKTsgfQogCiBwcml2YXRlOgogICAgIEd0
a1dpZGdldCogbV9uYXRpdmVXaWRnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5j
cHAKaW5kZXggNDRjYmY3M2M2YWQxNTVjZTI2MjllMDFhNDc0OThjMjUyOGNlYzQ2Yi4uN2IwNzk4
MzhiMzdmZjU3YTI4NDk0N2VhYTlhNzllYTg3OTY2YzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRXZWJQYWdlLmNwcApAQCAtNzMyLDcgKzczMiw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtp
dFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKIHZvaWQgd2Via2l0V2ViUGFnZURpZFJl
Y2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSkKIHsKICNpZiBQTEFURk9STShHVEspCi0gICAg
aWYgKG1lc3NhZ2VOYW1lID09IFN0cmluZygiR2V0U25hcHNob3QiKSkgeworICAgIGlmIChtZXNz
YWdlTmFtZSA9PSAiR2V0U25hcHNob3QiKSB7CiAgICAgICAgIFNuYXBzaG90T3B0aW9ucyBzbmFw
c2hvdE9wdGlvbnMgPSBzdGF0aWNfY2FzdDxTbmFwc2hvdE9wdGlvbnM+KHN0YXRpY19jYXN0PEFQ
STo6VUludDY0Kj4obWVzc2FnZS5nZXQoIlNuYXBzaG90T3B0aW9ucyJfcykpLT52YWx1ZSgpKTsK
ICAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0YXRpY19jYXN0PEFQSTo6VUludDY0Kj4o
bWVzc2FnZS5nZXQoIkNhbGxiYWNrSUQiX3MpKS0+dmFsdWUoKTsKICAgICAgICAgU25hcHNob3RS
ZWdpb24gcmVnaW9uID0gc3RhdGljX2Nhc3Q8U25hcHNob3RSZWdpb24+KHN0YXRpY19jYXN0PEFQ
STo6VUludDY0Kj4obWVzc2FnZS5nZXQoIlNuYXBzaG90UmVnaW9uIl9zKSktPnZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5z
cGVjdG9yVUlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9ndGsv
V2ViSW5zcGVjdG9yVUlHdGsuY3BwCmluZGV4IDc1MWU1YTFiN2MyZTc1ZTY1Nzk4ZjRmNThjZGZl
ZWU3OTBhOWI0OGUuLmIwZDQ4MjllZDJhNWMzZThhMjcyOGNhMWE5Yjc3YTBjMTU4MjdhZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3Bl
Y3RvclVJR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL2d0
ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAKQEAgLTQ2LDEyICs0NiwxMiBAQCBib29sIFdlYkluc3Bl
Y3RvclVJOjpjYW5Mb2FkKCkKIAogU3RyaW5nIFdlYkluc3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJp
bmdzVVJMKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd2Vi
a2l0L2luc3BlY3Rvci9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMi
KTsKKyAgICByZXR1cm4gInJlc291cmNlOi8vL29yZy93ZWJraXQvaW5zcGVjdG9yL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyJfczsKIH0KIAogU3RyaW5nIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd2Via2l0L2luc3BlY3Rvci9Mb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMiKTsKKyAgICByZXR1cm4gInJlc291cmNlOi8v
L29yZy93ZWJraXQvaW5zcGVjdG9yL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcyJfczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVk
aXRvckNsaWVudFdQRS5jcHAKaW5kZXggMzM4NGZhMjU4YzIwZjQ0NmYyMTJkYWUyYzI0ZGM5ZDgx
MjJiYWQwMS4uNzZlNmNlZmU5MGRjMDBiZTM4NGIzNTdmZDYxOTFlNmRlYWZhNDIyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBLZXlib2FyZEV2ZW50JiBldmVu
dCkKIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2
ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQog
ewotICAgIFN0cmluZyBjb21tYW5kTmFtZSB7IGludGVycHJldEtleUV2ZW50KGV2ZW50KSB9Owor
ICAgIGF1dG8gY29tbWFuZE5hbWUgPSBTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5RXZl
bnQoZXZlbnQpKTsKIAogICAgIGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKQEAgLTE5MCw3
ICsxOTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhGcmFtZSYgZnJhbWUsIEtleWJv
YXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleQogCiBzdGF0aWMgdm9pZCBoYW5kbGVL
ZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCYpCiB7Ci0gICAgU3RyaW5nIGNvbW1hbmROYW1lIHsgaW50ZXJwcmV0S2V5
RXZlbnQoZXZlbnQpIH07CisgICAgYXV0byBjb21tYW5kTmFtZSA9IFN0cmluZzo6ZnJvbUxhdGlu
MShpbnRlcnByZXRLZXlFdmVudChldmVudCkpOwogICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCmluZGV4IDc2NDQzYTk0MjU0YWU0ZmU4ZTU4Zjgw
N2JhYTUyMTU2YzM2N2QxMWQuLmM3N2ZmNzhjZDNjZDk2MjdkMWFlN2I5MzBjODE0NTcwOTQ2NDUy
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQ
YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2Vi
UGFnZVdpbi5jcHAKQEAgLTI2OCw3ICsyNjgsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRp
bmdLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIGlmIChl
dmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCAmJiBldmVudC50eXBlKCkg
IT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGF1dG8gY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKFN0cmluZyB7IGludGVy
cHJldEtleUV2ZW50KCZldmVudCkgfSk7CisgICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRv
cigpLmNvbW1hbmQoU3RyaW5nOjpmcm9tTGF0aW4xKGludGVycHJldEtleUV2ZW50KCZldmVudCkp
KTsKIAogICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24g
YWJvdXQgbW9kZSB0byBkZWNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0FjY2Vzc2libGVUZXh0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9BY2Nlc3Np
YmxlVGV4dEltcGwuY3BwCmluZGV4IGEyMTYzZmQwOTJiNDU0M2NhYTVhNTIwOTFkYjBhMTMzMzEx
ZWM2ODQuLjM1YzI4OTdhYzg4NzNiMTc0MzFmOWVkNTY3YjIxYzk5YmZiMjNiMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVUZXh0SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZVRleHRJbXBsLmNwcApAQCAtNjc2LDcg
KzY3Niw3IEBAIEhSRVNVTFQgQWNjZXNzaWJsZVRleHQ6OnNldEF0dHJpYnV0ZXMobG9uZyBzdGFy
dE9mZnNldCwgbG9uZyBlbmRPZmZzZXQsIEJTVFIqIGF0CiAvLyBJQWNjZXNzaWJsZTIKIEhSRVNV
TFQgQWNjZXNzaWJsZVRleHQ6OmdldF9hdHRyaWJ1dGVzKEJTVFIqIGF0dHJpYnV0ZXMpCiB7Ci0g
ICAgV1RGOjpTdHJpbmcgdGV4dCgidGV4dC1tb2RlbDphMSIpOworICAgIFdURjo6U3RyaW5nIHRl
eHQoInRleHQtbW9kZWw6YTEiX3MpOwogICAgICphdHRyaWJ1dGVzID0gQlN0cmluZyh0ZXh0KS5y
ZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKaW5kZXggZjEzMTZkZTQ2YzIxMzVhNmQyNmZhYjlkMTQ0
ZGViM2Y4MWYwODkzOC4uMDFhNjEyZmRhMzI4OWQ5NjdjYTk2NzJjYzQyM2UxZDM1ZGE1NTk3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcApAQCAt
MTQ5LDcgKzE0OSw3IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRQcm90
ZWN0ZWRPYmplY3RUeXBlQ291bnRzKF9DT01fT3V0cHRyX29wdF8KICAgICBJdGVyYXRvciBlbmQg
PSBqc09iamVjdFR5cGVOYW1lcy0+ZW5kKCk7CiAgICAgSGFzaE1hcDxTdHJpbmcsIGludD4gdHlw
ZUNvdW50TWFwOwogICAgIGZvciAoSXRlcmF0b3IgY3VycmVudCA9IGpzT2JqZWN0VHlwZU5hbWVz
LT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50KQotICAgICAgICB0eXBlQ291bnRN
YXAuc2V0KFN0cmluZyB7IGN1cnJlbnQtPmtleSB9LCBjdXJyZW50LT52YWx1ZSk7CisgICAgICAg
IHR5cGVDb3VudE1hcC5zZXQoU3RyaW5nOjpmcm9tTGF0aW4xKGN1cnJlbnQtPmtleSksIGN1cnJl
bnQtPnZhbHVlKTsKIAogICAgIENPTVB0cjxJUHJvcGVydHlCYWcyPiByZXN1bHRzKEFkb3B0Q09N
LCBDT01Qcm9wZXJ0eUJhZzxpbnQ+OjpjcmVhdGVJbnN0YW5jZSh0eXBlQ291bnRNYXApKTsKICAg
ICByZXN1bHRzLmNvcHlSZWZUbyh0eXBlTmFtZXNBbmRDb3VudHMpOwpAQCAtMTY3LDcgKzE2Nyw3
IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRz
KF9DT01fT3V0cHRyX29wdF8gSVByb3BlcnR5CiAgICAgSXRlcmF0b3IgZW5kID0ganNPYmplY3RU
eXBlTmFtZXMtPmVuZCgpOwogICAgIEhhc2hNYXA8U3RyaW5nLCBpbnQ+IHR5cGVDb3VudE1hcDsK
ICAgICBmb3IgKEl0ZXJhdG9yIGN1cnJlbnQgPSBqc09iamVjdFR5cGVOYW1lcy0+YmVnaW4oKTsg
Y3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgdHlwZUNvdW50TWFwLnNldChTdHJp
bmcgeyBjdXJyZW50LT5rZXkgfSwgY3VycmVudC0+dmFsdWUpOworICAgICAgICB0eXBlQ291bnRN
YXAuc2V0KFN0cmluZzo6ZnJvbUxhdGluMShjdXJyZW50LT5rZXkpLCBjdXJyZW50LT52YWx1ZSk7
CiAKICAgICBDT01QdHI8SVByb3BlcnR5QmFnMj4gcmVzdWx0cyhBZG9wdENPTSwgQ09NUHJvcGVy
dHlCYWc8aW50Pjo6Y3JlYXRlSW5zdGFuY2UodHlwZUNvdW50TWFwKSk7CiAgICAgcmVzdWx0cy5j
b3B5UmVmVG8odHlwZU5hbWVzQW5kQ291bnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDFj
N2FmZDA1MzFhOTJmMzI3YzMzNmI2NWYzYTEyZTA5MzJhNjhmZDYuLmIyMzkzNzYyNDBkYzlkMjMw
MWZlNWM1OTRiNzE3NDRkZTZlMjI1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDU0LDcg
KzQ1NCw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZl
bnQoRWxlbWVudCogZSwgS2V5Ym9hcmRFdmVudCoga2UpCiAgICAgICAgIGlmIChkb21FbGVtZW50
KSB7CiAgICAgICAgICAgICBJRE9NSFRNTElucHV0RWxlbWVudCogZG9tSW5wdXRFbGVtZW50Owog
ICAgICAgICAgICAgaWYgKFNVQ0NFRURFRChkb21FbGVtZW50LT5RdWVyeUludGVyZmFjZShJSURf
SURPTUhUTUxJbnB1dEVsZW1lbnQsICh2b2lkKiopJmRvbUlucHV0RWxlbWVudCkpKSB7Ci0gICAg
ICAgICAgICAgICAgU3RyaW5nIGNvbW1hbmQgeyBtX3dlYlZpZXctPmludGVycHJldEtleUV2ZW50
KGtlKSB9OworICAgICAgICAgICAgICAgIGF1dG8gY29tbWFuZCA9IFN0cmluZzo6ZnJvbUxhdGlu
MShtX3dlYlZpZXctPmludGVycHJldEtleUV2ZW50KGtlKSk7CiAgICAgICAgICAgICAgICAgLy8g
V2UgYWxsb3cgZW1wdHkgY29tbWFuZHMgaGVyZSBiZWNhdXNlIHRoZSBhcHAgY29kZSBhY3R1YWxs
eSBkZXBlbmRzIG9uIHRoaXMgYmVpbmcgY2FsbGVkIGZvciBhbGwga2V5IHByZXNzZXMuCiAgICAg
ICAgICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gcmV2aXNpdCB0aGlzIGxhdGVyIGJlY2F1c2Ug
aXQgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byBzZW5kIGFuIGVtcHR5IGNvbW1hbmQuCiAg
ICAgICAgICAgICAgICAgZm9ybURlbGVnYXRlLT5kb1BsYXRmb3JtQ29tbWFuZChkb21JbnB1dEVs
ZW1lbnQsIEJTdHJpbmcoY29tbWFuZCksIGtpdChlLT5kb2N1bWVudCgpLmZyYW1lKCkpLCAmcmVz
dWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBmYTk1MzcyNzJmNzI2ZmVk
MzNjN2JmMjJlYTNlYjM4OGMzOTRjZDExLi43Y2UyMDcxMjBjZDZmNzZlMGRiNzBmZGVhNDBlMTgz
M2NiNTZlZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03NTAsNyArNzUw
LDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXMKIHsKICAgICAvLyBGSVhNRTogTmVlZCBDaGlj
a2VuQ2F0IHRvIGluY2x1ZGUgQ0ZOZXR3b3JrL0NGVVJMRXJyb3IuaCB0byBnZXQgdGhlc2UgdmFs
dWVzCiAgICAgLy8gQWx0ZXJuYXRpdmVseSwgd2UgY291bGQgY3JlYXRlIG91ciBvd24gZXJyb3Ig
ZG9tYWluL2NvZGVzLgotICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJv
ckRvbWFpbiksIC05OTksIHJlcXVlc3QudXJsKCksIFN0cmluZygiQ2FuY2VsbGVkIikpOworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC05OTksIHJl
cXVlc3QudXJsKCksIFN0cmluZygiQ2FuY2VsbGVkIl9zKSk7CiB9CiAKIFJlc291cmNlRXJyb3Ig
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpIGNvbnN0CkBAIC03ODAsNyArNzgwLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b24KIAogUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlz
dEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSBjb25zdAogewotICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKFN0cmluZyhXZWJVUkxFcnJvckRvbWFpbiksIC0xMTAwLCByZXNw
b25zZS51cmwoKSwgU3RyaW5nKCJGaWxlIGRvZXMgbm90IGV4aXN0LiIpKTsKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcihTdHJpbmcoV2ViVVJMRXJyb3JEb21haW4pLCAtMTEwMCwgcmVzcG9uc2Uu
dXJsKCksIFN0cmluZygiRmlsZSBkb2VzIG5vdCBleGlzdC4iX3MpKTsKIH0KIAogUmVzb3VyY2VF
cnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggN2Y1MjFkYTBmZGEyNGE1NzQwNjgwYTI0Mzc5YjgyY2IyNDAzNDMzOC4u
NzcyNGZiMDAyYTFhYTI4MDM2YjJmMGZiMmNkMDRkNjIxYjM1MWU3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAKQEAgLTIxNDcsNyArMjE0Nyw3IEBAIGJvb2wgV2ViVmlldzo6aGFu
ZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgaWYgKGV2
ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50ICYmIGV2ZW50LnR5cGUoKSAh
PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgYXV0byBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoU3RyaW5nIHsgaW50ZXJw
cmV0S2V5RXZlbnQoJmV2ZW50KSB9KTsKKyAgICBhdXRvIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9y
KCkuY29tbWFuZChTdHJpbmc6OmZyb21MYXRpbjEoaW50ZXJwcmV0S2V5RXZlbnQoJmV2ZW50KSkp
OwogCiAgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93
bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBh
Ym91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlm
IGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0ZWQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vc3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRl
eCAwMDA1ZDAxMGQzNWJjNmM1OGMxODY5ZDExYWM3MTgyZjJjOGNlNzJhLi5lN2Y5NTA2NTViNDI0
ODYxNDQwNTZjZTgzNDhmNTk1MDlmNTZkZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9zdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL3N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTQ3LDUgKzQ3
LDUgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eVBhdGgoKQogICAgICAgICAmJiA6OkdldExhc3RFcnJvcigpICE9IEVSUk9SX0FMUkVBRFlfRVhJ
U1RTKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVybiBTdHJpbmco
ZGF0YWJhc2VEaXJlY3RvcnkpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21MYXRpbjEoZGF0YWJh
c2VEaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGM3MjEzMzE1ZmI3YmI3YTVkODY0Y2E4MjliOTMzYjEwNTc3MzVjY2MuLjk2
MzI5ZDVhNGM0N2E5YTdlOGI0MjJjYzUxOWFmNTA4OWE5YzQzYTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMi0w
NC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmlzaCBw
b3J0aW5nIGNvZGUgYmFzZSB0byBTdHJpbmc6OmZyb21MYXRpbjEoKSBhbmQgbWFrZSBTdHJpbmco
Y29uc3QgY2hhciopIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODk3NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
X0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0cmlu
Zy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9IVFRQSGVhZGVyRmllbGQuY3BwOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdWJs
aWNTdWZmaXguY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVzaERhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2VyVGV4dEVuY29k
aW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RJZGVudGl0eTIpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5k
U2VjcmV0VG9rZW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0ZVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoLVtXZWJLaXQxVGVzdERlbGVnYXRl
IHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZy
YW1lOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkpOgorCiAyMDIy
LTA0LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TWVyZ2UtUXVldWVdIENyZWF0ZSBzZXBlcmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGUxOTY2OGNj
ZDc0OWJiZTlhNjg4ZTA2ODQzNzA4OGZkMzY1OGFmODYuLjM2YWU4ZjU3M2M0MjhhYWU0ZDVkNWZi
MmE3ZTRhMjkzN2U0YmNjODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcApAQCAtMTE3NCwxMyArMTE3NCw5IEBAIHN0YXRpYyB2b2lkIHJlbW92ZUZvbnRG
YWxsYmFja0lmUHJlc2VudChjb25zdCBTdHJpbmcmIGZvbnRGYWxsYmFja1BhdGgpCiBzdGF0aWMg
Ym9vbCBoYW5kbGVDb250cm9sQ29tbWFuZChjb25zdCBjaGFyKiBjb21tYW5kKQogewogICAgIGlm
ICghc3RyY21wKCIjQ0hFQ0sgRk9SIEFCQU5ET05FRCBET0NVTUVOVFMiLCBjb21tYW5kKSkgewot
ICAgICAgICAvLyBEdW1wUmVuZGVyVHJlZSBkb2VzIG5vdCBzdXBwb3J0IGNoZWNraW5nIGZvciBh
YmFuZG9uZGVkIGRvY3VtZW50cy4KLSAgICAgICAgU3RyaW5nIHJlc3VsdCgiXG4iKTsKLSAgICAg
ICAgcHJpbnRmKCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cbiIpOwotICAgICAgICBwcmludGYo
IkNvbnRlbnQtTGVuZ3RoOiAldVxuIiwgcmVzdWx0Lmxlbmd0aCgpKTsKLSAgICAgICAgZndyaXRl
KHJlc3VsdC51dGY4KCkuZGF0YSgpLCAxLCByZXN1bHQubGVuZ3RoKCksIHN0ZG91dCk7Ci0gICAg
ICAgIHByaW50ZigiI0VPRlxuIik7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiI0VPRlxuIik7
CisgICAgICAgIC8vIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IHN1cHBvcnQgY2hlY2tpbmcgZm9y
IGFiYW5kb25lZCBkb2N1bWVudHMuCisgICAgICAgIGZwdXRzKCJDb250ZW50LVR5cGU6IHRleHQv
cGxhaW5cbkNvbnRlbnQtTGVuZ3RoOiAxXG5cbiNFT0ZcbiIsIHN0ZG91dCk7CisgICAgICAgIGZw
dXRzKCIjRU9GXG4iLCBzdGRlcnIpOwogICAgICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICAgICAg
ZmZsdXNoKHN0ZGVycik7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDRkNjQ3NTA2
OGMzZGFiZGQyNGMzMWZjMTBkZDhiODQwYjEwNGJkM2QuLjY0NTVlODFhZjFmMmE0YTU1ZGVjMGVi
YWI5MzFkMDA1OTU2MGExMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogCiBURVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5n
KQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5h
bCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFs
KTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBF
WFBFQ1RfVFJVRShjb3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwpAQCAtNDUsNyArNDUsNyBAQCBU
RVNUKFdURl9Dcm9zc1RocmVhZENvcGllciwgQ29weUxWU3RyaW5nKQogCiBURVNUKFdURl9Dcm9z
c1RocmVhZENvcGllciwgTW92ZVJWU3RyaW5nKQogewotICAgIFN0cmluZyBvcmlnaW5hbCB7ICIx
MjM0IiB9OworICAgIFN0cmluZyBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsKICAgICBFWFBFQ1RfVFJVRShj
b3B5LmltcGwoKS0+aGFzT25lUmVmKCkpOwogICAgIEVYUEVDVF9OVUxMKG9yaWdpbmFsLmltcGwo
KSk7CkBAIC01Myw3ICs1Myw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBNb3ZlUlZT
dHJpbmcpCiAKIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBDb3B5UlZTdHJpbmdIYXZpbmdU
d29SZWYpCiB7Ci0gICAgU3RyaW5nIG9yaWdpbmFsIHsgIjEyMzQiIH07CisgICAgU3RyaW5nIG9y
aWdpbmFsIHsgIjEyMzQiX3MgfTsKICAgICBTdHJpbmcgb3JpZ2luYWwyIHsgb3JpZ2luYWwgfTsK
ICAgICBhdXRvIGNvcHkgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShvcmlnaW5hbCkpOwogICAg
IEVYUEVDVF9FUShvcmlnaW5hbC5pbXBsKCktPnJlZkNvdW50KCksIDJ1KTsKQEAgLTYzLDcgKzYz
LDcgQEAgVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlSVlN0cmluZ0hhdmluZ1R3b1Jl
ZikKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIENvcHlMVk9wdGlvbmFsU3RyaW5nKQog
ewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0IiB9OworICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9zIH07CiAgICAgYXV0byBjb3B5
ID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbmFsKTsKICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbC0+
aW1wbCgpLT5oYXNPbmVSZWYoKSk7CiAgICAgRVhQRUNUX1RSVUUoY29weS0+aW1wbCgpLT5oYXNP
bmVSZWYoKSk7CkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV1RGX0Nyb3NzVGhyZWFkQ29waWVyLCBD
b3B5TFZPcHRpb25hbFN0cmluZykKIAogVEVTVChXVEZfQ3Jvc3NUaHJlYWRDb3BpZXIsIE1vdmVS
Vk9wdGlvbmFsU3RyaW5nKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7
ICIxMjM0IiB9OworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7ICIxMjM0Il9z
IH07CiAgICAgYXV0byBjb3B5ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUob3JpZ2luYWwpKTsK
ICAgICBFWFBFQ1RfVFJVRShjb3B5LT5pbXBsKCktPmhhc09uZVJlZigpKTsKICAgICBFWFBFQ1Rf
TlVMTChvcmlnaW5hbC0+aW1wbCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXVEZfQ3Jvc3NU
aHJlYWRDb3BpZXIsIE1vdmVSVk9wdGlvbmFsU3RyaW5nKQogCiBURVNUKFdURl9Dcm9zc1RocmVh
ZENvcGllciwgQ29weVJWT3B0aW9uYWxTdHJpbmdIYXZpbmdUd29SZWYpCiB7Ci0gICAgU3RyaW5n
IHN0cmluZyB7ICIxMjM0IiB9OworICAgIFN0cmluZyBzdHJpbmcgeyAiMTIzNCJfcyB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBvcmlnaW5hbCB7IHN0cmluZyB9OwogICAgIGF1dG8gY29w
eSA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW5hbCk7CiAgICAgRVhQRUNUX0VRKG9yaWdpbmFsLT5p
bXBsKCktPnJlZkNvdW50KCksIDJ1KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RmlsZVN5c3RlbS5jcHAKaW5kZXggODY4Y2NiYjlmMzM0OTFiNTNhNGZmMjU4MmQ1ZGFhNWFlNTAy
NjRkMC4uZGIyNDY1MjM5Njg2NTE2ODg4MWI3NDE0N2NmM2M0YzNhODZhNGI4NCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTEyMiw3ICsxMjIs
NyBAQCBwcml2YXRlOgogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBNYXBwaW5nTWlzc2luZ0ZpbGUp
CiB7CiAgICAgYm9vbCBzdWNjZXNzOwotICAgIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhIG1h
cHBlZEZpbGVEYXRhKFN0cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSwgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZU1vZGU6OlNoYXJlZCwgc3VjY2Vzcyk7CisgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmls
ZURhdGEgbWFwcGVkRmlsZURhdGEoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSJfcyksIEZpbGVT
eXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpTaGFyZWQsIHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9GQUxT
RShzdWNjZXNzKTsKICAgICBFWFBFQ1RfVFJVRSghbWFwcGVkRmlsZURhdGEpOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGV4TnVtYmVyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hleE51bWJlci5jcHAKaW5kZXggOWU2ZGM5ZDI1MzI1
YzUzMGM0Mjk3YjAxZjRjMzUyNGU5NTcyNWNhOC4uN2Y5N2JjZDI3NDM3N2JiYjBiZGE5ZDk5OGY0
OGRjYmVjN2ExMDExMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGV4TnVtYmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IZXhOdW1i
ZXIuY3BwCkBAIC00OSw2MSArNDksNjEgQEAgVEVTVChXVEYsIEhleE51bWJlcikKICAgICB7CiAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4
KGludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiLCBidWlsZGVyKTsK
KyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkEiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWlsZGVyLmFw
cGVuZChoZXgoaW50ZWdlciwgTG93ZXJjYXNlKSk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCJhIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJhIl9zLCBi
dWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDEsIExvd2VyY2FzZSkpOwotICAg
ICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiYSJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGhleChpbnRlZ2Vy
LCAyLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjBhIiwgYnVp
bGRlcik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwYSJfcywgYnVpbGRlcik7CiAg
ICAgfQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGhleChpbnRlZ2VyLCAzLCBMb3dlcmNhc2UpKTsKLSAgICAgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoIjAwYSIsIGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDBhIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGludGVnZXIsIDQsIExv
d2VyY2FzZSkpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSIsIGJ1aWxkZXIp
OworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDAwYSJfcywgYnVpbGRlcik7CiAgICAg
fQogCiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGhleChsYXJnZUludGVnZXIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIkZBQ0UiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIkZBQ0Ui
X3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChoZXgobGFyZ2VJbnRlZ2VyLCAyKSk7Ci0gICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCJGQUNFIiwgYnVpbGRlcik7CisgICAgICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCJGQUNFIl9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaGV4KGJ5
dGUpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjgwIiwgYnVpbGRlcik7CisgICAg
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCI4MCJfcywgYnVpbGRlcik7CiAgICAgfQogCiAgICAg
ewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGhleChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihpbnRlZ2VyKSwgMikpOwotICAgICAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMEEiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjBBIl9zLCBidWlsZGVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggZTc2NzI1ODk1NmUzODlk
YjljYWVmZWNkZDQzMmQ0ODkzYWMwMDdjOC4uYTQ4N2U1N2U5ZDA0NjE3ZDQ5ZGU4ZGExOTEyYmU0
ODI2MTY4MzA1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nQnVpbGRlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAKQEAgLTYzLDI1ICs2MywyNSBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBE
ZWZhdWx0Q29uc3RydWN0b3IpCiBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSIpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxk
ZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSJfcykpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICBidWlsZGVy
LmFwcGVuZCgiYWJjZCIpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZCIsIGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKCJlZmdoIiwgMyk7Ci0g
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7Cisg
ICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgiIik7Ci0gICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTY3ODlhYmNkZWZnIl9zLCBidWlsZGVyKTsKICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAg
ICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIl9zLCBidWlsZGVyKTsK
IAogICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgog
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJz
KCIiLCAwKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwg
YnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIyJf
cywgYnVpbGRlcik7CiAgICAgYnVpbGRlcjEuYXBwZW5kQ2hhcmFjdGVycyhidWlsZGVyLmNoYXJh
Y3RlcnM4KCksIGJ1aWxkZXIubGVuZ3RoKCkpOwogICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7
CiAgICAgYnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKGJ1aWxkZXIxLmNoYXJhY3RlcnM4KCksIGJ1
aWxkZXIxLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFi
Y2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CisgICAgZXhwZWN0QnVpbGRl
ckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiJfcywgYnVp
bGRlcik7CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2Vy
dmVDYXBhY2l0eSgxMDApOwpAQCAtMTMwLDU5ICsxMzAsNTkgQEAgVEVTVChTdHJpbmdCdWlsZGVy
VGVzdCwgQXBwZW5kSW50TWluKQogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAg
IHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmluZzsKIAotICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KFN0cmluZyhleHBlY3RlZFN0cmluZy5jX3N0cigpKSwgYnVpbGRlcik7CisgICAgZXhwZWN0
QnVpbGRlckNvbnRlbnQoU3RyaW5nOjpmcm9tTGF0aW4xKGV4cGVjdGVkU3RyaW5nLmNfc3RyKCkp
LCBidWlsZGVyKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVmFyaWFkaWNBcHBlbmQp
CiB7CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5Il9zKSk7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2Nzg5Il9zLCBidWlsZGVyKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKLSAg
ICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVpbGRlcik7Cisg
ICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZCJfcywgYnVpbGRlcik7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdlJyk7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWlsZGVyKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCIiKTsKLSAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZSIs
IGJ1aWxkZXIpOworICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2Rl
Il9zLCBidWlsZGVyKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNk
IiwgJ2UnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGUiLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCJBIiksICJCIiwg
J0MnLCAiIik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVB
QkMiLCBidWlsZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
Il9zKSwgImFiY2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAx
MjM0NTY3ODlhYmNkZSJfcywgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
ZygiQSJfcyksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIw
MTIzNDU2Nzg5YWJjZGVBQkMiX3MsIGJ1aWxkZXIpOwogICAgIH0KIAogICAgIHsKICAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjAx
MjM0NTY3ODkiKSwgImFiY2QiLCBidWxsc2V5ZSwgIiIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZChTdHJpbmcoIjAxMjM0NTY3ODkiX3MpLCAiYWJjZCIsIGJ1bGxzZXllLCAiIik7CiAgICAgICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJpbmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5n
KCZidWxsc2V5ZSwgMSkpLCBidWlsZGVyKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
KCJBIiksICJCIiwgJ0MnLCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJf
cyksICJCIiwgJ0MnLCAiIik7CiAgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KG1ha2VTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkIiwgU3RyaW5nKCZidWxsc2V5ZSwgMSksICJBQkMiKSwgYnVpbGRl
cik7CiAgICAgfQogCiAgICAgewogICAgICAgICAvLyBUZXN0IHdoZXJlIHdlIHVwY29udmVydCB0
aGUgU3RyaW5nQnVpbGRlciBmcm9tIDgtYml0IHRvIDE2LWJpdCwgYW5kIGRvbid0IGZpdCBpbiB0
aGUgZXhpc3RpbmcgY2FwYWNpdHkuCiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5IiksICJhYmNkIiwgJ2UnLCAi
Iik7Ci0gICAgICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGUiLCBidWls
ZGVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Il9zKSwgImFi
Y2QiLCAnZScsICIiKTsKKyAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlh
YmNkZSJfcywgYnVpbGRlcik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkp
OwogICAgICAgICBFWFBFQ1RfTFQoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgp
ICsgMyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXll
LCAiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNl
eWUsICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIAog
ICAgIHsKICAgICAgICAgLy8gVGVzdCB3aGVyZSB3ZSB1cGNvbnZlcnQgdGhlIFN0cmluZ0J1aWxk
ZXIgZnJvbSA4LWJpdCB0byAxNi1iaXQsIGJ1dCB3b3VsZCBoYXZlIGZpdCBpbiB0aGUgY2FwYWNp
dHkgaWYgdGhlIHVwY29udmVydCB3YXNuJ3QgbmVjZXNzYXJ5LgogICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIp
LCAiYWJjZCIsICdlJywgIiIpOwotICAgICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlIiwgYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEy
MzQ1Njc4OSJfcyksICJhYmNkIiwgJ2UnLCAiIik7CisgICAgICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2Nzg5YWJjZGUiX3MsIGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLnJlc2Vy
dmVDYXBhY2l0eSgzMik7CiAgICAgICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuaXM4Qml0KCkpOwog
ICAgICAgICBFWFBFQ1RfR0UoYnVpbGRlci5jYXBhY2l0eSgpLCBidWlsZGVyLmxlbmd0aCgpICsg
Myk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSIpLCAiQiIsIGJ1bGxzZXllLCAi
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiQSJfcyksICJCIiwgYnVsbHNleWUs
ICIiKTsKICAgICAgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQobWFrZVN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlQUIiLCBTdHJpbmcoJmJ1bGxzZXllLCAxKSksIGJ1aWxkZXIpOwogICAgIH0KIH0KQEAg
LTE5MiwzMiArMTkyLDMyIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nKQogICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIp
OwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODkiX3MpLCBzdHJpbmcpOwogICAgIEVYUEVDVF9FUShzdHJpbmcuaW1wbCgpLCBidWls
ZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKS4K
ICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAKICAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nKCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVpbGRlci5y
ZXNlcnZlQ2FwYWNpdHkoMjAwKTsKICAgICBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBv
cmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVu
dCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9T
dHJpbmcoKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIl9zKSwgc3RyaW5nMSk7CiAgICAgc3Ry
aW5nMS5hcHBlbmQoIkRFRiJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAg
RVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJD
REVGIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVG
Il9zKSwgc3RyaW5nMSk7CiAKICAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91
bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCiAgICAgc3Ry
aW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICBidWlsZGVyLnNocmluaygxMCk7CiAgICAg
YnVpbGRlci5hcHBlbmQoIiMjIyIpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiX3MpLCBzdHJp
bmcxKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KQpAQCAtMjI3LDEzICsyMjcsMTMgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBh
Y2l0eSgpOwogICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OSJfcyksIHN0cmluZyk7CiAgICAgRVhQRUNUX0VRKHN0cmluZy5p
bXBsKCksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuaW1wbCgpKTsKICAgICBF
WFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7CiAK
ICAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUg
b3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgogICAgIGJ1aWxk
ZXIuYXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5Il9zKSwgc3RyaW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVy
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCiAgICAgYnVp
bGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKQEAgLTI0MSwxOSArMjQxLDE5IEBAIFRFU1QoU3Ry
aW5nQnVpbGRlclRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBzdHJpbmcgPSBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVYUEVDVF9FUShjYXBhY2l0
eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3RyaW5nLmNoYXJhY3RlcnM4
KCksIGJ1aWxkZXIuY2hhcmFjdGVyczgoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3RyaW5n
KTsKICAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Il9zKSwgc3Ry
aW5nKTsKIAogICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0
cmluZ0J1aWxkZXIuCiAgICAgY2FwYWNpdHkgPSBidWlsZGVyLmNhcGFjaXR5KCk7CiAgICAgU3Ry
aW5nIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEVY
UEVDVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKICAgICBFWFBFQ1RfRVEoc3Ry
aW5nMS5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNoYXJhY3RlcnM4KCkpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJp
bmcxKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiX3MpLCBzdHJpbmcxKTsKICAgICBzdHJpbmcxLmFwcGVuZCgiREVGIl9zKTsK
LSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7Ci0gICAgRVhQRUNU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiks
IHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQyJfcyksIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQ0RFRiJfcyksIHN0cmluZzEpOwogCiAgICAgLy8gUmVzaXppbmcgdGhlIFN0cmluZ0J1
aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIuY2FwYWNpdHkoKTsKQEAg
LTI2Miw3ICsyNjIsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkpCiAgICAgRVhQRUNUX0VRKHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBidWlsZGVyLmNo
YXJhY3RlcnM4KCkpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgiIyMjIik7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIjAxMjM0
NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyJfcyksIHN0cmluZzEpOwogfQogCiBU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKQEAgLTI5MCwxNSArMjkwLDE1IEBAIFRFU1Qo
U3RyaW5nQnVpbGRlclRlc3QsIFJlc2l6ZSkKICAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4
OSIpOwogICAgIGJ1aWxkZXIuc2hyaW5rKDEwKTsKICAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVy
Lmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxk
ZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Il9zLCBidWlsZGVyKTsK
ICAgICBidWlsZGVyLnNocmluayg4KTsKICAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3Ro
KCkpOwotICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyJfcywgYnVpbGRlcik7CiAKICAgICBidWls
ZGVyLnRvU3RyaW5nKCk7CiAgICAgYnVpbGRlci5zaHJpbmsoNyk7CiAgICAgRVhQRUNUX0VRKDdV
LCBidWlsZGVyLmxlbmd0aCgpKTsKLSAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIs
IGJ1aWxkZXIpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Il9zLCBidWlsZGVy
KTsKICAgICBidWlsZGVyLnNocmluaygwKTsKICAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKIH0K
QEAgLTMxMSwyMSArMzExLDIxIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEVxdWFsKQogICAg
IEVYUEVDVF9UUlVFKGVxdWFsKGJ1aWxkZXIxLCBzdGF0aWNfY2FzdDxMQ2hhcio+KDApLCAwKSk7
CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCkpOwogICAgIEVYUEVDVF9UUlVF
KFN0cmluZygpID09IGJ1aWxkZXIxKTsKLSAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJp
bmcoImFiYyIpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSAhPSBTdHJpbmcoImFiYyJfcykp
OwogCiAgICAgYnVpbGRlcjEuYXBwZW5kKCIxMjMiKTsKICAgICBidWlsZGVyMS5yZXNlcnZlQ2Fw
YWNpdHkoMzIpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMTIzIik7CiAgICAgYnVpbGRlcjEucmVz
ZXJ2ZUNhcGFjaXR5KDY0KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyMSA9PSBidWlsZGVyMik7
Ci0gICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgPT0gU3RyaW5nKCIxMjMiKSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCIxMjMiKSA9PSBidWlsZGVyMSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjEgPT0gU3RyaW5nKCIxMjMiX3MpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIjEyMyJfcykg
PT0gYnVpbGRlcjEpOwogCiAgICAgYnVpbGRlcjIuYXBwZW5kKCI0NTYiKTsKICAgICBFWFBFQ1Rf
VFJVRShidWlsZGVyMSAhPSBidWlsZGVyMik7CiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjIgIT0g
YnVpbGRlcjEpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiMTIzIikgIT0gYnVpbGRlcjIpOwot
ICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIyICE9IFN0cmluZygiMTIzIikpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiMTIzIl9zKSAhPSBidWlsZGVyMik7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRl
cjIgIT0gU3RyaW5nKCIxMjMiX3MpKTsKICAgICBidWlsZGVyMi50b1N0cmluZygpOyAvLyBUZXN0
IGFmdGVyIHJlaWZ5U3RyaW5nKCkuCiAgICAgRVhQRUNUX1RSVUUoYnVpbGRlcjEgIT0gYnVpbGRl
cjIpOwogCkBAIC0zNTIsNyArMzUyLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9BdG9t
U3RyaW5nKQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZCgi
MTIzIik7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nID0gYnVpbGRlci50b0F0b21TdHJpbmco
KTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCIxMjMiKSwgYXRvbVN0cmluZyk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiMTIzIl9zKSwgYXRvbVN0cmluZyk7CiAKICAgICBidWlsZGVyLnJlc2VydmVD
YXBhY2l0eSgyNTYpOwogICAgIEVYUEVDVF9UUlVFKGJ1aWxkZXIuc2hvdWxkU2hyaW5rVG9GaXQo
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBs
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCmluZGV4
IGE3NjJiZTBhMjI3MWI4NjdkNjI5MGRkMjdhMWQwYjM5ZDUyMjE0ZGYuLmJiMzMxNjViNjY3NzUz
NWY0YmU2ZTQ0MWRlYmMyMTdhZGYyOGZiM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwCkBAIC00NDAsMTQgKzQ0MCwxNCBAQCBURVNUKFdURiwgU3Ry
aW5nSW1wbFN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKIAogVEVTVChXVEYs
IFN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UpCiB7Ci0gICAgU3RyaW5nIHN0cmlu
ZygiVGVzdCB0RVNUIik7CisgICAgU3RyaW5nIHN0cmluZygiVGVzdCB0RVNUIl9zKTsKICAgICBB
U1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0cmluZywgInRl
c3QgdCIpKTsKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHN0cmluZywgInRlc3QgdGUiKSk7CiAgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcsICJ0ZXN0IHRlc3QiKSk7CiAgICAgQVNTRVJUX0ZB
TFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLCAidGVzdCB0ZXgi
KSk7CiAKICAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KHN0cmluZywgIiIpKTsKLSAgICBBU1NFUlRfVFJVRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKFN0cmluZygiIiksICIiKSk7CisgICAgQVNTRVJUX1RSVUUoc3RhcnRzV2l0aExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbXB0eVN0cmluZygpLCAiIikpOwogCiAgICAgQVNTRVJU
X0ZBTFNFKHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoU3RyaW5nKCksICJ0Iikp
OwogICAgIEFTU0VSVF9GQUxTRShzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKFN0
cmluZygpLCAiIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nT3BlcmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z09wZXJhdG9ycy5jcHAKaW5kZXggODgwOTRmYjFiYjJjNGRhZTc0MzM0OTY3NTE3NTA2OTY2MTJl
MTFmYy4uYjQ0MmU0MzY4YzAzZGI3YmE2MzBjN2FlYTJhOTgzNWQzNDhiNDRiOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00
MiwxMSArNDIsMTEgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdURiwgU3Ry
aW5nT3BlcmF0b3JzKQogewotICAgIFN0cmluZyBzdHJpbmcoIlN0cmluZyIpOworICAgIFN0cmlu
ZyBzdHJpbmcoIlN0cmluZyJfcyk7CiAgICAgQXRvbVN0cmluZyBhdG9tU3RyaW5nKCJBdG9tU3Ry
aW5nIik7CiAgICAgQVNDSUlMaXRlcmFsIGxpdGVyYWwgeyAiQVNDSUlMaXRlcmFsIl9zIH07CiAK
LSAgICBTdHJpbmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyIgfTsKKyAgICBTdHJp
bmcgc3RyaW5nVmlld0JhY2tpbmcgeyAiU3RyaW5nVmlldyJfcyB9OwogICAgIFN0cmluZ1ZpZXcg
c3RyaW5nVmlldyB7IHN0cmluZ1ZpZXdCYWNraW5nIH07CiAKICAgICBFWFBFQ1RfRVEoMCwgd3Rm
U3RyaW5nQ29weUNvdW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1N0cmluZ1ZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
Vmlldy5jcHAKaW5kZXggYzI1MzM4MmQzNGExNzgzMjZjMDljN2NkZWY1Yzc1N2JmNzhlYWQwNC4u
YmFmNGQ3YWNiZWUzZjY2NjZmYzlmOWM0MDlhM2NlMGNlMTc3NDE1YyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVEVT
VChXVEYsIFN0cmluZ1ZpZXdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAgU3RyaW5nVmll
dyBudWxsVmlldzsKICAgICBTdHJpbmdWaWV3IGVtcHR5VmlldyA9IFN0cmluZ1ZpZXc6OmVtcHR5
KCk7Ci0gICAgU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzKCJoZWxsbyIpOworICAgIFN0cmlu
ZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgdmlld1dp
dGhDaGFyYWN0ZXJzKHN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKIAogICAgIEVYUEVDVF9UUlVFKHZp
ZXdXaXRoQ2hhcmFjdGVycy5zdGFydHNXaXRoKG51bGxWaWV3KSk7CkBAIC04NCw3ICs4NCw3IEBA
IFRFU1QoV1RGLCBTdHJpbmdWaWV3RW1wdHlWc051bGwpCiAgICAgZWxzZQogICAgICAgICBTVUND
RUVEKCk7CiAKLSAgICBTdHJpbmdWaWV3IHZpZXdXaXRoQ2hhcmFjdGVycyhTdHJpbmcoImhlbGxv
IikpOworICAgIFN0cmluZ1ZpZXcgdmlld1dpdGhDaGFyYWN0ZXJzKFN0cmluZygiaGVsbG8iX3Mp
KTsKICAgICBFWFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzTnVsbCgpKTsKICAgICBF
WFBFQ1RfRkFMU0Uodmlld1dpdGhDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7CiAKQEAgLTE0MSw3ICsx
NDEsNyBAQCBURVNUKFdURiwgU3RyaW5nVmlld0l0ZXJhdG9ycykKICAgICBFWFBFQ1RfVFJVRShj
b21wYXJlTG9vcEl0ZXJhdGlvbnMoU3RyaW5nVmlldzo6ZW1wdHkoKS5jb2RlVW5pdHMoKSwgeyB9
KSk7CiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1ZpZXc6OmVt
cHR5KCkuZ3JhcGhlbWVDbHVzdGVycygpLCB7IH0pKTsKIAotICAgIFN0cmluZyBoZWxvKCJoZWxv
Iik7CisgICAgU3RyaW5nIGhlbG8oImhlbG8iX3MpOwogICAgIFN0cmluZ1ZpZXcgaGVsb1ZpZXco
aGVsbyk7CiAKICAgICBhdXRvIGNvZGVQb2ludHMgPSBoZWxvVmlldy5jb2RlUG9pbnRzKCk7CkBA
IC0xNTYsNyArMTU2LDcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJdGVyYXRvcnMpCiAgICAgRVhQ
RUNUX0VRKCpjb2RlUG9pbnRzSXRlcmF0b3IsICdoJyk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9y
ID0gc2F2ZWRJdGVyYXRvcjsKICAgICBFWFBFQ1RfRVEoKmNvZGVQb2ludHNJdGVyYXRvciwgJ2wn
KTsKLSAgICBTdHJpbmcgd2Via2l0KCJ3ZWJraXQiKTsKKyAgICBTdHJpbmcgd2Via2l0KCJ3ZWJr
aXQiX3MpOwogICAgIGF1dG8gd2Via2l0Q29kZVBvaW50cyA9IFN0cmluZ1ZpZXcod2Via2l0KS5j
b2RlUG9pbnRzKCk7CiAgICAgY29kZVBvaW50c0l0ZXJhdG9yID0gd2Via2l0Q29kZVBvaW50cy5i
ZWdpbigpOwogICAgICsrY29kZVBvaW50c0l0ZXJhdG9yOwpAQCAtOTgzLDEwICs5ODMsMTAgQEAg
VEVTVChXVEYsIFN0cmluZ1ZpZXdTdHJpcExlYWRpbmdBbmRUcmFpbGluZ01hdGNoZWRDaGFyYWN0
ZXJzKQogCiBURVNUKFdURiwgU3RyaW5nVmlld0lzQWxsQVNDSUkpCiB7Ci0gICAgRVhQRUNUX1RS
VUUoU3RyaW5nVmlldyhTdHJpbmcoIkhlbGxvIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nVmlldyhTdHJpbmcoIkNvY29hIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsK
KyAgICBFWFBFQ1RfVFJVRShTdHJpbmdWaWV3KFN0cmluZygiSGVsbG8iX3MpKS5pc0FsbEFTQ0lJ
KCkpOworICAgIEVYUEVDVF9UUlVFKFN0cmluZ1ZpZXcoU3RyaW5nKCJDb2NvYSJfcykpLmlzQWxs
QVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3RyaW5nOjpmcm9tTGF0aW4x
KCLwn5OxIikpLmlzQWxsQVNDSUkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKFN0cmluZ1ZpZXcoU3Ry
aW5nOjpmcm9tTGF0aW4xKCJcdTAwODAiKSkuaXNBbGxBU0NJSSgpKTsKICAgICBFWFBFQ1RfVFJV
RShTdHJpbmdWaWV3KFN0cmluZyhiaXR3aXNlX2Nhc3Q8Y29uc3QgVUNoYXIqPih1IkhlbGxvIikp
KS5pc0FsbEFTQ0lJKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMLmNwcApp
bmRleCA4MzcwNTcwYWFmYTQxMzE4MjRlM2Q4ZGEzODg2OTliYTI5YzhiY2U4Li41NTE3YWY1ZDc0
MzEwNTU5N2QzZDgwMDE1YjZjYzcyNDlkZDk2NmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1VSTC5jcHAKQEAgLTYwLDE2ICs2MCwxNiBAQCBURVNUX0YoV1RGX1VSTCwgVVJMQ29uc3Ry
dWN0b3JDb25zdENoYXIpCiAgICAgRVhQRUNUX1RSVUUoa3VybC5pc1ZhbGlkKCkpOwogCiAgICAg
RVhQRUNUX0VRKGt1cmwucHJvdG9jb2woKSA9PSAiaHR0cCIsIHRydWUpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoInd3dy5leGFtcGxlLmNvbSIpLCBrdXJsLmhvc3QoKS50b1N0cmluZygpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb20iX3MpLCBrdXJsLmhvc3QoKS50b1N0
cmluZygpKTsKICAgICBFWFBFQ1RfVFJVRSghIWt1cmwucG9ydCgpKTsKICAgICBFWFBFQ1RfRVEo
ODA4MCwga3VybC5wb3J0KCkudmFsdWUoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5h
bWUiKSwga3VybC51c2VyKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1
cmwucGFzc3dvcmQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiL2luZGV4Lmh0bWwiKSwga3Vy
bC5wYXRoKCkpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiKSwga3VybC5sYXN0
UGF0aENvbXBvbmVudCgpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ2YXI9dmFsIiksIGt1cmwu
cXVlcnkoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiX3MpLCBrdXJsLnVzZXIo
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygicGFzc3dvcmQiX3MpLCBrdXJsLnBhc3N3b3JkKCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoIi9pbmRleC5odG1sIl9zKSwga3VybC5wYXRoKCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImluZGV4Lmh0bWwiX3MpLCBrdXJsLmxhc3RQYXRoQ29tcG9u
ZW50KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInZhcj12YWwiX3MpLCBrdXJsLnF1ZXJ5KCkp
OwogICAgIEVYUEVDVF9UUlVFKGt1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZyYWdtZW50IiksIGt1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwor
ICAgIEVYUEVDVF9FUShTdHJpbmcoImZyYWdtZW50Il9zKSwga3VybC5mcmFnbWVudElkZW50aWZp
ZXIoKSk7CiB9CiAKIHN0YXRpYyBVUkwgY3JlYXRlVVJMKEFTQ0lJTGl0ZXJhbCB1cmxBc1N0cmlu
ZykKQEAgLTgwLDQzICs4MCw0MyBAQCBzdGF0aWMgVVJMIGNyZWF0ZVVSTChBU0NJSUxpdGVyYWwg
dXJsQXNTdHJpbmcpCiBURVNUX0YoV1RGX1VSTCwgVVJMUHJvdG9jb2xIb3N0QW5kUG9ydCkKIHsK
ICAgICBhdXRvIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lOnBhc3N3b3JkQHd3dy5l
eGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2Nv
bEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0g
Y3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWU6QHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0
bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3
dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90
b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vOnBhc3N3
b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZhbCNmcmFnbWVudCJfcyk7
Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb206ODA4MCJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAg
ICAgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vdXNlcm5hbWVAd3d3LmV4YW1wbGUuY29tOjgwODAv
aW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7
CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwIl9zKSwg
dXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4MCIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tOjgwODAiX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKIAogICAg
IHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9
dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1w
bGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
KTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5o
dG1sP3Zhcj12YWwjZnJhZ21lbnQiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb20iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNU
X0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfcyksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIl9zKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkp
OworICAgIEVYUEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iX3MpLCB1cmwucHJvdG9jb2xIb3N0QW5k
UG9ydCgpKTsKIAogICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiX3MpOwotICAgIEVY
UEVDVF9FUShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0
KCkpOwogCiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9F
UShTdHJpbmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwog
CiAgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EiX3MpOwotICAgIEVYUEVDVF9FUShTdHJp
bmcoImZpbGU6Ly8iKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiZmlsZTovLyJfcyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogCiAgICAg
dXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dvcmRAd3d3LmV4YW1wbGUuY29t
OjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Il9zKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJhc2RmOi8vd3d3LmV4YW1wbGUuY29tOjgwODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBv
cnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgw
Il9zKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CiAKICAgICB1cmwgPSBjcmVhdGVVUkwo
ImFzZGY6Ly8vYS9iL2MiX3MpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoImFzZGY6Ly8iKSwgdXJs
LnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyJf
cyksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogfQogCiBURVNUX0YoV1RGX1VSTCwgVVJM
RGF0YVVSSVN0cmluZ1NoYXJpbmcpCkBAIC0zNjMsNyArMzYzLDcgQEAgVEVTVF9GKFdURl9VUkws
IFVSTERpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycykKIHsKICAgICBVUkwgdXJsMSA9IGNyZWF0ZVVS
TCgid3d3LndlYmtpdC5vcmcvPyJfcyk7CiAgICAgVVJMIHVybDIgPSBjcmVhdGVVUkwoImh0dHA6
Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWly
PFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBW
ZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjEyIHsgeyAia2V5
MSJfcywgInZhbDEiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRl
cnModXJsMSwgdXJsMiksIHRlc3RWZWN0b3IxMik7CiAgICAgCiAgICAgVVJMIHVybDMzID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSJfcyk7CkBAIC0zODgsNjcg
KzM4OCw2NyBAQCBURVNUX0YoV1RGX1VSTCwgVVJMRGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKQog
ICAgIAogICAgIFVSTCB1cmwzID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPyJf
cyk7CiAgICAgVVJMIHVybDQgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5
MT12YWwxIl9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVz
dFZlY3RvcjM0IHt7ImtleTEiLCAidmFsMSJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0
cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjM0IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMywgdXJsNCksIHRlc3RW
ZWN0b3IzNCk7CiAgICAgCiAgICAgVVJMIHVybDUgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8/a2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsNiA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnLz8iX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yNTYge3sia2V5MSIsICJ2YWwxIn19OworICAgIFZlY3RvcjxLZXlW
YWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yNTYgeyB7ICJrZXkxIl9zLCAidmFs
MSJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFyYW1ldGVycyh1cmw1LCB1
cmw2KSwgdGVzdFZlY3RvcjU2KTsKICAgICAKICAgICBVUkwgdXJsMTMgPSBjcmVhdGVVUkwoImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5MT12YWwxJmtleTI9dmFsMiJfcyk7CiAgICAgVVJMIHVy
bDE0ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFsMSZrZXkxPXZh
bDEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVj
dG9yMTMxNCB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIifX07CisgICAgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMzE0IHsgeyAia2V5MSJf
cywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShk
aWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTMsIHVybDE0KSwgdGVzdFZlY3RvcjEzMTQpOwog
ICAgIAogICAgIFVSTCB1cmwxNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz9r
ZXkxPXZhbDEiX3MpOwogICAgIFVSTCB1cmwxNiA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnLz9rZXkyPXZhbDIiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXN0VmVjdG9yMTUxNiB7eyJrZXkxIiwgInZhbDEifSwgeyJrZXkyIiwgInZhbDIi
fX07CisgICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3Ix
NTE2IHsgeyAia2V5MSJfcywgInZhbDEiX3MgfSwgeyAia2V5MiJfcywgInZhbDIiX3MgfSB9Owog
ICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMTUsIHVybDE2KSwgdGVz
dFZlY3RvcjE1MTYpOwogICAgIAogICAgIFVSTCB1cmwxMSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy53ZWJraXQub3JnLz9rZXkyPXZhbDIma2V5MT12YWwxIl9zKTsKICAgICBVUkwgdXJsMTIgPSBj
cmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTE9dmFsMSJfcyk7
Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxMTEy
IHt7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFsMyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjExMTIgeyB7ICJrZXkyIl9zLCAidmFs
MiJfcyB9LCB7ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmlu
Z1F1ZXJ5UGFyYW1ldGVycyh1cmwxMSwgdXJsMTIpLCB0ZXN0VmVjdG9yMTExMik7CiAgICAgCiAg
ICAgVVJMIHVybDE3ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTE9dmFs
MSZrZXkyPXZhbDIiX3MpOwogICAgIFVSTCB1cmwxOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53
ZWJraXQub3JnLz9rZXkxJmtleTM9dmFsMyJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IxNzE4IHt7ImtleTEiLCAiIn0sIHsia2V5MSIsICJ2
YWwxIn0sIHsia2V5MiIsICJ2YWwyIn0sIHsia2V5MyIsICJ2YWwzIn19OworICAgIFZlY3RvcjxL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTcxOCB7IHsia2V5MSJfcywg
IiJfcyB9LCB7ICJrZXkxIl9zLCAidmFsMSJfcyB9LCB7ICJrZXkyIl9zLCAidmFsMiJfcyB9LCB7
ICJrZXkzIl9zLCAidmFsMyJfcyB9IH07CiAgICAgRVhQRUNUX0VRKGRpZmZlcmluZ1F1ZXJ5UGFy
YW1ldGVycyh1cmwxNywgdXJsMTgpLCB0ZXN0VmVjdG9yMTcxOCk7CiAgICAgCiAgICAgVVJMIHVy
bDE5ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvP2tleTI9dmFsMiZrZXkxPXZh
bDEma2V5Mj12YWwyIl9zKTsKICAgICBVUkwgdXJsMjAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cu
d2Via2l0Lm9yZy8/a2V5Mz12YWwzJmtleTEiX3MpOwotICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMTkyMCB7eyJrZXkxIiwgIiJ9LCB7ImtleTEiLCAi
dmFsMSJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTIiLCAidmFsMiJ9LCB7ImtleTMiLCAidmFs
MyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjE5MjAgeyB7ICJrZXkxIl9zLCAiIl9zIH0sIHsgImtleTEiX3MsICJ2YWwxIl9zIH0sIHsgImtl
eTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTIiX3MsICJ2YWwyIl9zIH0sIHsgImtleTMiX3MsICJ2
YWwzIl9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKHVybDE5
LCB1cmwyMCksIHRlc3RWZWN0b3IxOTIwKTsKICAgICAKICAgICBVUkwgdXJsMjEgPSBjcmVhdGVV
UkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZy8/PyJfcyk7CiAgICAgVVJMIHVybDIyID0gY3JlYXRl
VVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8
S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIxMjIge3siLz90ZXN0Iiwg
InRlc3QifSwgeyI/IiwgIiJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4gdGVzdFZlY3RvcjIxMjIgeyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3Ms
ICIiX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjEs
IHVybDIyKSwgdGVzdFZlY3RvcjIxMjIpOwogICAgIAogICAgIFVSTCB1cmwyMyA9IGNyZWF0ZVVS
TCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89dGVzdCJfcyk7CiAgICAgVVJMIHVybDI0ID0gY3Jl
YXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPz09Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjIzMjQge3siIiwgIj0ifSwgeyIiLCAi
dGVzdCJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZl
Y3RvcjIzMjQgeyB7ICIiX3MsICI9Il9zIH0sIHsgIiJfcywgInRlc3QiX3MgfSB9OwogICAgIEVY
UEVDVF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjMsIHVybDI0KSwgdGVzdFZlY3Rv
cjIzMjQpOwogICAgIAogICAgIFVSTCB1cmwyNyA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPz8iX3MpOwogICAgIFVSTCB1cmwyOCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJr
aXQub3JnPy8/dGVzdD10ZXN0Il9zKTsKLSAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywg
U3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgge3siLz90ZXN0IiwgInRlc3QifSwgeyI/IiwgIiJ9fTsK
KyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3RvcjI3Mjgg
eyB7ICIvP3Rlc3QiX3MsICJ0ZXN0Il9zIH0sIHsgIj8iX3MsICIiX3MgfSB9OwogICAgIEVYUEVD
VF9FUShkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnModXJsMjcsIHVybDI4KSwgdGVzdFZlY3RvcjI3
MjgpOwogICAgIAogICAgIFVSTCB1cmwyOSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnPz10ZXN0Il9zKTsKICAgICBVUkwgdXJsMzAgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZz89PSJfcyk7Ci0gICAgVmVjdG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+
IHRlc3RWZWN0b3IyOTMwIHt7IiIsICI9In0sIHsiIiwgInRlc3QifX07CisgICAgVmVjdG9yPEtl
eVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IyOTMwIHsgeyAiIl9zLCAiPSJf
cyB9LCB7ICIiX3MsICJ0ZXN0Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDI5LCB1cmwzMCksIHRlc3RWZWN0b3IyOTMwKTsKICAgICAKICAgICBVUkwg
dXJsMzEgPSBjcmVhdGVVUkwoImh0dHA6Ly93d3cud2Via2l0Lm9yZz89PyJfcyk7CiAgICAgVVJM
IHVybDMyID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmc9PyJfcyk7Ci0gICAgVmVj
dG9yPEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHRlc3RWZWN0b3IzMTMyIHt7IiIsICI/
In19OworICAgIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9y
MzEzMiB7IHsgIiJfcywgIj8iX3MgfSB9OwogICAgIEVYUEVDVF9FUShkaWZmZXJpbmdRdWVyeVBh
cmFtZXRlcnModXJsMzEsIHVybDMyKSwgdGVzdFZlY3RvcjMxMzIpOwogICAgIAogICAgIFVSTCB1
cmwyNSA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy53ZWJraXQub3JnLz89PyJfcyk7CiAgICAgVVJM
IHVybDI2ID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvPT8iX3MpOwotICAgIFZl
Y3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXN0VmVjdG9yMjUyNiB7eyIiLCAi
PyJ9fTsKKyAgICBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gdGVzdFZlY3Rv
cjI1MjYgeyB7ICIiX3MsICI/Il9zIH0gfTsKICAgICBFWFBFQ1RfRVEoZGlmZmVyaW5nUXVlcnlQ
YXJhbWV0ZXJzKHVybDI1LCB1cmwyNiksIHRlc3RWZWN0b3IyNTI2KTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1ZlY3Rvci5jcHAKaW5kZXggMjU2YTllNDA2MGM3M2E1MDAxZDJh
OTVjYmUzMjgwNDk5NDM1NTU2My4uYTIyZWIyM2NjYmY3MjcwOTQ3N2I4Y2U1OTBjY2MyMDQ0OWI1
YTA5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC04OTUs
OSArODk1LDkgQEAgVEVTVChXVEZfVmVjdG9yLCBNYXBMYW1iZGFNb3ZlKQogVEVTVChXVEZfVmVj
dG9yLCBNYXBGcm9tSGFzaE1hcCkKIHsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXA7
Ci0gICAgbWFwLnNldChTdHJpbmcgeyAiazEiIH0sIFN0cmluZyB7ICJ2MSIgfSk7Ci0gICAgbWFw
LnNldChTdHJpbmcgeyAiazIiIH0sIFN0cmluZyB7ICJ2MiIgfSk7Ci0gICAgbWFwLnNldChTdHJp
bmcgeyAiazMiIH0sIFN0cmluZyB7ICJ2MyIgfSk7CisgICAgbWFwLnNldCgiazEiX3MsICJ2MSJf
cyk7CisgICAgbWFwLnNldCgiazIiX3MsICJ2MiJfcyk7CisgICAgbWFwLnNldCgiazMiX3MsICJ2
MyJfcyk7CiAKICAgICBhdXRvIG1hcHBlZCA9IFdURjo6bWFwKG1hcCwgWyZdIChLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+JiBwYWlyKSAtPiBTdHJpbmcgewogICAgICAgICByZXR1cm4gcGFp
ci52YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURlN0
cmluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEZTdHJpbmcuY3BwCmlu
ZGV4IGI5MzM0ZDQ1ZmJkZDUwMjcwZjIxZjY1YTEwZmNiZjNiMmE0YzViMWEuLjViMjE3MmVjMDBi
Nzc0ZjRmZjkxMjVhZDUxYzU1ZGViN2QyMzZiMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dURlN0cmluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGU3RyaW5nLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBAIFRFU1QoV1RGLCBTdHJp
bmdDcmVhdGlvbkZyb21MaXRlcmFsKQogICAgIEVYUEVDVF9FUShzdHJsZW4oIkV4cGxpY2l0IGNv
bnN0cnVjdGlvbiBzeW50YXgiKSwgc3RyaW5nRnJvbUxpdGVyYWxWaWFBU0NJSS5sZW5ndGgoKSk7
CiAgICAgRVhQRUNUX0VRKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Iiwgc3RyaW5nRnJv
bUxpdGVyYWxWaWFBU0NJSSk7CiAgICAgRVhQRUNUX1RSVUUoc3RyaW5nRnJvbUxpdGVyYWxWaWFB
U0NJSS5pczhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiRXhwbGljaXQgY29uc3RydWN0
aW9uIHN5bnRheCIpLCBzdHJpbmdGcm9tTGl0ZXJhbFZpYUFTQ0lJKTsKKyAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJFeHBsaWNpdCBjb25zdHJ1Y3Rpb24gc3ludGF4Il9zKSwgc3RyaW5nRnJvbUxpdGVy
YWxWaWFBU0NJSSk7CiAKICAgICBTdHJpbmcgc3RyaW5nRnJvbUxpdGVyYWwgPSAiU3RyaW5nIExp
dGVyYWwiX3N0cjsKICAgICBFWFBFQ1RfRVEoc3RybGVuKCJTdHJpbmcgTGl0ZXJhbCIpLCBzdHJp
bmdGcm9tTGl0ZXJhbC5sZW5ndGgoKSk7CiAgICAgRVhQRUNUX0VRKCJTdHJpbmcgTGl0ZXJhbCIs
IHN0cmluZ0Zyb21MaXRlcmFsKTsKICAgICBFWFBFQ1RfVFJVRShzdHJpbmdGcm9tTGl0ZXJhbC5p
czhCaXQoKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygiU3RyaW5nIExpdGVyYWwiKSwgc3RyaW5n
RnJvbUxpdGVyYWwpOworICAgIEVYUEVDVF9FUShTdHJpbmcoIlN0cmluZyBMaXRlcmFsIl9zKSwg
c3RyaW5nRnJvbUxpdGVyYWwpOwogfQogCiBURVNUKFdURiwgU3RyaW5nQVNDSUkpCkBAIC03MCw3
ICs3MCw3IEBAIFRFU1QoV1RGLCBTdHJpbmdTdGFydHNXaXRoRW1wdHlWc051bGwpCiB7CiAgICAg
U3RyaW5nIG51bGxTdHJpbmc7CiAgICAgU3RyaW5nIGVtcHR5U3RyaW5nID0gV1RGOjplbXB0eVN0
cmluZygpOwotICAgIFN0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVycygiaGVsbG8iKTsKKyAgICBT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnMoImhlbGxvIl9zKTsKIAogICAgIEVYUEVDVF9UUlVF
KHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgobnVsbFN0cmluZykpOwogICAgIEVYUEVD
VF9UUlVFKHN0cmluZ1dpdGhDaGFyYWN0ZXJzLnN0YXJ0c1dpdGgoZW1wdHlTdHJpbmcpKTsKQEAg
LTIzMSw3ICsyMzEsNyBAQCBURVNUKFdURiwgU3RyaW5nTnVtYmVySW50TWluKQogICAgIHN0ZDo6
c3RyaW5nIGV4cGVjdGVkU3RyaW5nOwogICAgIHN0cmluZ1N0cmVhbSA+PiBleHBlY3RlZFN0cmlu
ZzsKIAotICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmcoZXhwZWN0ZWRTdHJpbmcuY19z
dHIoKSkpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdCA9PSBTdHJpbmc6OmZyb21MYXRpbjEoZXhw
ZWN0ZWRTdHJpbmcuY19zdHIoKSkpOwogfQogCiBURVNUKFdURiwgU3RyaW5nUmVwbGFjZVdpdGhM
aXRlcmFsKQpAQCAtMjkzLDUxICsyOTMsNTEgQEAgVEVTVChXVEYsIFN0cmluZ1RvRG91YmxlKQog
ICAgIEVYUEVDVF9FUSgwLjAsIGVtcHR5U3RyaW5nKCkudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKG9rKTsKIAotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91Ymxl
KCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCIpLnRvRG91YmxlKCZvaykpOworICAg
IEVYUEVDVF9FUSgwLjAsIFN0cmluZygiMCJfcykudG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VR
KDAuMCwgU3RyaW5nKCIwIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfVFJVRShvayk7
CiAKLSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgpKTsKLSAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIjEiKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMS4w
LCBTdHJpbmcoIjEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
MSJfcykudG9Eb3VibGUoJm9rKSk7CiAgICAgRVhQRUNUX1RSVUUob2spOwogCiAgICAgLy8gZmFp
bCBpZiB3ZSBzZWUgbGVhZGluZyBqdW5rCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJ4MSIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygieDEiKS50b0RvdWJsZSgm
b2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgpKTsKKyAg
ICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIngxIl9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBF
Q1RfRkFMU0Uob2spOwogCiAgICAgLy8gc3VjY2VlZCBpZiB3ZSBzZWUgbGVhZGluZyBzcGFjZXMK
LSAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIiAxIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNU
X0VRKDEuMCwgU3RyaW5nKCIgMSIpLnRvRG91YmxlKCZvaykpOworICAgIEVYUEVDVF9FUSgxLjAs
IFN0cmluZygiIDEiX3MpLnRvRG91YmxlKCkpOworICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygi
IDEiX3MpLnRvRG91YmxlKCZvaykpOwogICAgIEVYUEVDVF9UUlVFKG9rKTsKIAogICAgIC8vIGln
bm9yZSB0cmFpbGluZyBqdW5rLCBidXQgcmV0dXJuIGZhbHNlIGZvciAib2siCiAgICAgLy8gRklY
TUU6IFRoaXMgaXMgYW4gaW5jb25zaXN0ZW5jeSB3aXRoIHRvSW50LCB3aGljaCBhbHdheXMgZ3Vh
cmFudGVlcwogICAgIC8vIGl0IHdpbGwgcmV0dXJuIDAgaWYgaXQncyBhbHNvIGdvaW5nIHRvIHJl
dHVybiBmYWxzZSBmb3Igb2suCi0gICAgRVhQRUNUX0VRKDEuMCwgU3RyaW5nKCIxeCIpLnRvRG91
YmxlKCkpOwotICAgIEVYUEVDVF9FUSgxLjAsIFN0cmluZygiMXgiKS50b0RvdWJsZSgmb2spKTsK
KyAgICBFWFBFQ1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgpKTsKKyAgICBFWFBF
Q1RfRVEoMS4wLCBTdHJpbmcoIjF4Il9zKS50b0RvdWJsZSgmb2spKTsKICAgICBFWFBFQ1RfRkFM
U0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1iZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMg
c3VjaCBhcyAiaW5maW5pdHkiCi0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJpbmZpbml0eSIp
LnRvRG91YmxlKCkpOwotICAgIEVYUEVDVF9FUSgwLjAsIFN0cmluZygiaW5maW5pdHkiKS50b0Rv
dWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0Rv
dWJsZSgpKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoImluZmluaXR5Il9zKS50b0RvdWJs
ZSgmb2spKTsKICAgICBFWFBFQ1RfRkFMU0Uob2spOwogCiAgICAgLy8gcGFyc2Ugb25seSBudW1i
ZXJzLCBub3Qgc3BlY2lhbCB2YWx1ZXMgc3VjaCBhcyAibmFuIgotICAgIEVYUEVDVF9FUSgwLjAs
IFN0cmluZygibmFuIikudG9Eb3VibGUoKSk7Ci0gICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJu
YW4iKS50b0RvdWJsZSgmb2spKTsKKyAgICBFWFBFQ1RfRVEoMC4wLCBTdHJpbmcoIm5hbiJfcyku
dG9Eb3VibGUoKSk7CisgICAgRVhQRUNUX0VRKDAuMCwgU3RyaW5nKCJuYW4iX3MpLnRvRG91Ymxl
KCZvaykpOwogICAgIEVYUEVDVF9GQUxTRShvayk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdoYXNJ
bmZpeFN0YXJ0aW5nQXQpCiB7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJUZXN0IikuaXM4Qml0
KCkpOwotICAgIEVYUEVDVF9UUlVFKFN0cmluZygiVGUiKS5pczhCaXQoKSk7Ci0gICAgRVhQRUNU
X1RSVUUoU3RyaW5nKCJzdCIpLmlzOEJpdCgpKTsKLSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRl
c3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJUZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRpbmdBdChTdHJpbmcoIlRlIiksIDIpKTsK
LSAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5n
KCJzdCIpLCAyKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3Rh
cnRpbmdBdChTdHJpbmcoIlNUIiksIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3Qi
X3MpLmlzOEJpdCgpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlIl9zKS5pczhCaXQoKSk7
CisgICAgRVhQRUNUX1RSVUUoU3RyaW5nKCJzdCJfcykuaXM4Qml0KCkpOworICAgIEVYUEVDVF9U
UlVFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KCJUZSJfcywgMCkpOworICAg
IEVYUEVDVF9GQUxTRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdBdCgiVGUiX3Ms
IDIpKTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoIlRlc3QiX3MpLmhhc0luZml4U3RhcnRpbmdB
dCgic3QiX3MsIDIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nKCJUZXN0Il9zKS5oYXNJbmZp
eFN0YXJ0aW5nQXQoIlNUIl9zLCAyKSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoU3RyaW5nOjpmcm9t
VVRGOCgi5Lit5Zu9IikuaXM4Qml0KCkpOwogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21V
VEY4KCLkuK0iKS5pczhCaXQoKSk7CkBAIC0zNDYsMTMgKzM0NiwxMyBAQCBURVNUKFdURiwgU3Ry
aW5naGFzSW5maXhTdGFydGluZ0F0KQogICAgIEVYUEVDVF9GQUxTRShTdHJpbmc6OmZyb21VVEY4
KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5LitIiksIDEp
KTsKICAgICBFWFBFQ1RfVFJVRShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0
YXJ0aW5nQXQoU3RyaW5nOjpmcm9tVVRGOCgi5Zu9IiksIDEpKTsKIAotICAgIEVYUEVDVF9GQUxT
RShTdHJpbmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoU3RyaW5nKCJU
ZSIpLCAwKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCIpLmhhc0luZml4U3RhcnRp
bmdBdChTdHJpbmc6OmZyb21VVEY4KCLkuK0iKSwgMikpOworICAgIEVYUEVDVF9GQUxTRShTdHJp
bmc6OmZyb21VVEY4KCLkuK3lm70iKS5oYXNJbmZpeFN0YXJ0aW5nQXQoIlRlIl9zLCAwKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFN0cmluZygiVGVzdCJfcykuaGFzSW5maXhTdGFydGluZ0F0KFN0cmlu
Zzo6ZnJvbVVURjgoIuS4rSIpLCAyKSk7CiB9CiAKIFRFU1QoV1RGLCBTdHJpbmdFeGlzdGluZ0hh
c2gpCiB7Ci0gICAgU3RyaW5nIHN0cmluZzEoIlRlbXBsYXRlIExpdGVyYWwiKTsKKyAgICBTdHJp
bmcgc3RyaW5nMSgiVGVtcGxhdGUgTGl0ZXJhbCJfcyk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0cmlu
ZzEuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9GQUxTRShzdHJpbmcxLmltcGwoKS0+aGFzSGFzaCgp
KTsKICAgICBzdHJpbmcxLmltcGwoKS0+aGFzaCgpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1Qo
V1RGLCBTdHJpbmdFeGlzdGluZ0hhc2gpCiAKIFRFU1QoV1RGLCBTdHJpbmdVbmljb2RlRXF1YWxV
Q2hhckFycmF5KQogewotICAgIFN0cmluZyBzdHJpbmcxKCJhYmMiKTsKKyAgICBTdHJpbmcgc3Ry
aW5nMSgiYWJjIl9zKTsKICAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nMS5pc051bGwoKSk7CiAgICAg
RVhQRUNUX1RSVUUoc3RyaW5nMS5pczhCaXQoKSk7CiAgICAgVUNoYXIgYWJbXSA9IHsgJ2EnLCAn
YicgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29u
dGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGZlNWNlNjk0OTBmY2YzNDMwYjdhMTRiNzU4NTJkNGM4
ZWMwMWI4NTkuLmE5OTcxMjM0YzNjMjBjZjE0NWZlNTY3MGRiYWI5OWU2ZDNlMGM4MTQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcApAQCAtMTc5Miw3ICsxNzkyLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25U
ZXN0LCBQYXJzaW5nRmFpbHVyZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoImF7YSxifSJfcywg
Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKIAog
ICAgIGNvbnN0IGNoYXIgbm9uQVNDSUlbMl0gPSB7LTEsICdcMCd9OwotICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKFN0cmluZyB7IG5vbkFTQ0lJIH0sIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OlBhcnNlU3RhdHVzOjpOb25BU0NJSSk7CisgICAgdGVzdFBhdHRlcm5TdGF0dXMoU3Ry
aW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJKSwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6Ok5vbkFTQ0lJKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFx4
ZmYiX3MsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpO
b25BU0NJSSk7CiAgICAgCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxceFxcclxcbiJfcywgQ29u
dGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCmluZGV4
IDllMjBhMzQxZDViMWM4ZWQ0N2VhNGJjNmUyZjQyMjg1MjdlYTE4MDcuLjllMzVkOTViYjUxYTA5
YjAwODUzNGQ3MzM1ZDgyOGEwMDBlYzJjNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtNDQsOSArNDQsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogICAgIAotY29u
c3QgU3RyaW5nIEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Iik7Ci1jb25zdCBT
dHJpbmcgRmlsZU1vbml0b3JSZXZpc2VkRGF0YSgiVGhpcyBpcyBzb21lIGNoYW5nZWQgdGV4dCBm
b3IgdGhlIHRlc3QiKTsKLWNvbnN0IFN0cmluZyBGaWxlTW9uaXRvclNlY29uZFJldmlzZWREYXRh
KCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUgdGVzdCIpOworY29uc3QgU3RyaW5n
IEZpbGVNb25pdG9yVGVzdERhdGEoIlRoaXMgaXMgYSB0ZXN0Il9zKTsKK2NvbnN0IFN0cmluZyBG
aWxlTW9uaXRvclJldmlzZWREYXRhKCJUaGlzIGlzIHNvbWUgY2hhbmdlZCB0ZXh0IGZvciB0aGUg
dGVzdCJfcyk7Citjb25zdCBTdHJpbmcgRmlsZU1vbml0b3JTZWNvbmRSZXZpc2VkRGF0YSgiVGhp
cyBpcyBzb21lIGNoYW5nZWQgdGV4dCBmb3IgdGhlIHRlc3QiX3MpOwogCiBjbGFzcyBGaWxlTW9u
aXRvclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCmluZGV4
IDc3MGIwNzI3ZmRlZjI5NWI4MmNkYjA1Mjc5NDMxMTIyOTlhY2M5ZjMuLjcyM2Q1ODhhYTQ5Yzg3
ZTM2NjRiNDZmMzE4MGRmZDcwN2ZjMjc1ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuY3BwCkBAIC03NCw5ICs3NCw5IEBA
IFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiBcIlwiIl9zLAogICAg
ICAgICAiYTogXCJhQT9cdCBcIiJfcywKICAgICAgICAgImE6IFwiYVwiIChiKSAoKGMpKSJfcywK
LSAgICAgICAgU3RyaW5nIHsgbm9uQVNDSUlDb21tZW50IH0sCi0gICAgICAgIFN0cmluZyB7IG5v
bkFTQ0lJUXVvdGVkUGFpckluQ29tbWVudCB9LAotICAgICAgICBTdHJpbmcgeyBub25BU0NJSVF1
b3RlZFBhaXJJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxhdGluMShub25BU0NJSUNv
bW1lbnQpLAorICAgICAgICBTdHJpbmc6OmZyb21MYXRpbjEobm9uQVNDSUlRdW90ZWRQYWlySW5D
b21tZW50KSwKKyAgICAgICAgU3RyaW5nOjpmcm9tTGF0aW4xKG5vbkFTQ0lJUXVvdGVkUGFpcklu
UXVvdGUpLAogICAgIH0pOwogICAgIAogICAgIHNob3VsZEJlSW52YWxpZCh7CkBAIC05NSw3ICs5
NSw3IEBAIFRFU1QoSFRUUEhlYWRlckZpZWxkLCBQYXJzZXIpCiAgICAgICAgICJhOiAoXGEpIl9z
LAogICAgICAgICAiYTogXCJcYVwiIl9zLAogICAgICAgICAiYTogXCJhXCIgKGIpfSgoYykpIl9z
LAotICAgICAgICBTdHJpbmcgeyBkZWxJblF1b3RlIH0sCisgICAgICAgIFN0cmluZzo6ZnJvbUxh
dGluMShkZWxJblF1b3RlKSwKICAgICB9KTsKICAgICAKICAgICBzaG91bGRCZWNvbWUoewpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAKaW5k
ZXggMTQ3MTkwMDBkZTFkM2U2NDBjN2NjY2RlNjI5NDNmNGE0ZjUxNTA1MS4uNTZhNTlmMmRhOWU1
YTgwOWQxYzczZDc1N2NhMGU5MTNjMjkxMDgzNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgVEVT
VChLZXllZENvZGluZywgU2V0QW5kR2V0RG91YmxlKQogCiBURVNUKEtleWVkQ29kaW5nLCBTZXRB
bmRHZXRTdHJpbmcpCiB7Ci0gICAgRVhQRUNUX1RSVUUodGVzdFNpbXBsZVZhbHVlKCZXZWJDb3Jl
OjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVj
b2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCIpKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdFNpbXBs
ZVZhbHVlKCZXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZVN0cmluZywgJldlYkNvcmU6Oktl
eWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nLCBTdHJpbmcoIldlYktpdCJfcykpKTsKIH0KIAogVEVT
VChLZXllZENvZGluZywgR2V0Tm9uRXhpc3RpbmdSZWNvcmQpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcAppbmRleCBlMGVjN2ZlNDVhZjMxZTQxZmUxZTlkYzUyMDU0OTRlMTQ2MTZiM2UyLi5iNGI2
NjQzMDE2ZjMwMWRlZTdjZTM1Mjk5OGFmMTJmZWNlODdhMDA2IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAKQEAgLTI5MSw3ICsyOTEsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBJbnZhbGlkU291cmNlTm9uY2UpCiAgICAgZXBoZW1lcmFsTm9uY2UgPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RXBoZW1lcmFsTm9uY2UgeyAiQUJDREVGYWJjZGUvMDEyMzQ1Njc4OSJfcyB9
OwogICAgIEFTU0VSVF9GQUxTRShlcGhlbWVyYWxOb25jZS5pc1ZhbGlkKCkpOwogICAgIC8vIEls
bGVnYWwsIG5vbi1BU0NJSSBjaGFyYWN0ZXIgJ8OlJy4KLSAgICBlcGhlbWVyYWxOb25jZSA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxOb25jZSB7ICJBQkNERUZhYmNkZcOlMDEy
MzQ1Njc4OSJfcyB9OworICAgIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkVwaGVtZXJhbE5vbmNlIHsgU3RyaW5nOjpmcm9tTGF0aW4xKCJBQkNERUZhYmNkZcOlMDEy
MzQ1Njc4OSIpIH07CiAgICAgQVNTRVJUX0ZBTFNFKGVwaGVtZXJhbE5vbmNlLmlzVmFsaWQoKSk7
CiAgICAgLy8gRW1wdHkgc3RyaW5nLgogICAgIGVwaGVtZXJhbE5vbmNlID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkVwaGVtZXJhbE5vbmNlIHsgU3RyaW5nSW1wbDo6ZW1wdHkoKSB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApp
bmRleCBhN2ZhNDQzMmNhNzhkYWRmYWEyNzExMDg1ZDU0OTVlMzljMWNkOTRkLi5kOGI1NjczZDI4
MDhhMjRjYTQ4ZWRmMzg5NDdiNGM1ZGIyYzIwYWU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4LmNwcApAQCAtMTU3LDMwICsxNTcsMzAg
QEAgVEVTVF9GKFB1YmxpY1N1ZmZpeCwgVG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbikKICAg
ICBFWFBFQ1RfRVEoU3RyaW5nKHV0ZjE2U3RyaW5nKHUiZXhhbXBsZS5cdTY4MDNcdTY3MjguanAi
KSksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4odXRmMTZTdHJpbmcodSJleGFtcGxlLlx1
NjgwM1x1NjcyOC5qcCIpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluKFN0cmluZygpKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0
ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvbSJfcykpOwot
ICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oImNvbS50ZXN0LmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29t
IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJfcykp
OwotICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigid3d3LmNvbS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
LnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY28udWsiX3MpKTsKLSAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvLnVrIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWRE
b21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7Ci0gICAgRVhQRUNUX0VRKFN0cmluZygi
YmwudWsiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiYmwudWsiX3MpKTsKLSAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJibC51ayIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJz
dWJkb21haW4uYmwudWsiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LnhuLS16ZjBh
bzY0YS50dyIpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LnhuLS16ZjBhbzY0
YS50dyJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4tLXpmMGFvNjRhLnR3Iiks
IHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInd3dy50ZXN0LnhuLS16ZjBhbzY0YS50dyJf
cykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIjEyNy4wLjAuMSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCIxMjcuMC4wLjEiX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0
LmNvbSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInRlc3QuY29tIl9zKSk7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJjb20udGVzdC5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNv
bSJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvbSJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImNvbS5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJ3d3cuY29tLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRl
c3QuY28udWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0ZXN0LmNvLnVrIl9z
KSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jby51ayJfcyksIHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4oInN1YmRvbWFpbi50ZXN0LmNvLnVrIl9zKSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZygiYmwudWsiX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJibC51ayJf
cykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImJsLnVrIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbigic3ViZG9tYWluLmJsLnVrIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygi
dGVzdC54bi0temYwYW82NGEudHciX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJ0
ZXN0LnhuLS16ZjBhbzY0YS50dyJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QueG4t
LXpmMGFvNjRhLnR3Il9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigid3d3LnRlc3Qu
eG4tLXpmMGFvNjRhLnR3Il9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiMTI3LjAuMC4xIl9z
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiMTI3LjAuMC4xIl9zKSk7CiAgICAgRVhQ
RUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIxIl9zKSk7CiAg
ICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJjb20i
X3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSIpLCB0b3BQcml2YXRlbHlDb250
cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYudGVzdC5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3Ry
aW5nKCJyNC0tLWFzZGYuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0t
YXNkZi5jb20iX3MpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJ0ZXN0LmNvbSJfcyksIHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW4oInI0LS0tYXNkZi50ZXN0LmNvbSJfcykpOworICAgIEVY
UEVDVF9FUShTdHJpbmcoInI0LS0tYXNkZi5jb20iX3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVk
RG9tYWluKCJyNC0tLWFzZGYuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygpLCB0b3BQ
cml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJyNC0tLWFzZGYiX3MpKTsKICAgICBFWFBFQ1RfRVEo
dXRmMTZTdHJpbmcoYmlkaXJlY3Rpb25hbERvbWFpbiksIHV0ZjE2U3RyaW5nKGJpZGlyZWN0aW9u
YWxEb21haW4pKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJleGFtcGxlLmNvbSIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOwotICAgIEVYUEVDVF9FUShT
dHJpbmcoImV4YW1wbGUuY29tIiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oIlNVQi5k
T21haW4uRXhhbVBsZS5jb20iX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5nKCJsb2NhbGhvc3Qi
KSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigibG9jYWxob3N0Il9zKSk7Ci0gICAgRVhQ
RUNUX0VRKFN0cmluZygibG9jYWxob3N0IiksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4o
IkxvY2FsSG9zdCJfcykpOwotICAgIEVYUEVDVF9FUShTdHJpbmcoIsOlw6TDtiIpLCB0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKCLDpcOkw7YiX3MpKTsKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCLDhcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbigiw4XDhMOWIl9zKSk7Ci0g
ICAgRVhQRUNUX0VRKFN0cmluZygidGVzdC5jb20iKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbigiLnRlc3QuY29tIl9zKSk7CisgICAgRVhQRUNUX0VRKFN0cmluZygiZXhhbXBsZS5jb20i
X3MpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCJFeGFtUGxlLmNvbSJfcykpOworICAg
IEVYUEVDVF9FUShTdHJpbmcoImV4YW1wbGUuY29tIl9zKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxl
ZERvbWFpbigiU1VCLmRPbWFpbi5FeGFtUGxlLmNvbSJfcykpOworICAgIEVYUEVDVF9FUShTdHJp
bmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oImxvY2FsaG9z
dCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImxvY2FsaG9zdCJfcyksIHRvcFByaXZhdGVs
eUNvbnRyb2xsZWREb21haW4oIkxvY2FsSG9zdCJfcykpOworICAgIEVYUEVDVF9FUShTdHJpbmc6
OmZyb21VVEY4KCLDpcOkw7YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmc6
OmZyb21VVEY4KCLDpcOkw7YiKSkpOworICAgIEVYUEVDVF9FUShTdHJpbmc6OmZyb21VVEY4KCLD
hcOEw5YiKSwgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihTdHJpbmc6OmZyb21VVEY4KCLD
hcOEw5YiKSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoInRlc3QuY29tIl9zKSwgdG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbigiLnRlc3QuY29tIl9zKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygpLCB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKCIuLi4uIl9zKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9QdXNoRGF0YWJhc2UuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKaW5k
ZXggNzFlZmVhY2NmYjg3Y2RmYTlhMzY4ZjhiODM4NzNiNGU1YTNhYmZkMy4uYTYyNDBhMzUzMGYx
NGNlOTI1NWUyNDQ4YmE3NzMxMDU0MWQ4MzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1B1c2hEYXRhYmFzZS5jcHAKQEAgLTQzMiw4ICs0MzIsOCBAQCBU
RVNUKFB1c2hEYXRhYmFzZSwgTWFueUluRmxpZ2h0T3BzKQogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgc25wcmludGYoc2Nv
cGUsIHNpemVvZihzY29wZSksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvdGVzdC8lZCIsIGkpOwog
ICAgICAgICAgICAgc25wcmludGYodG9waWMsIHNpemVvZih0b3BpYyksICJ0b3BpY18lZCIsIGkp
OwotICAgICAgICAgICAgcmVjb3JkLnNjb3BlID0gU3RyaW5nIHsgc2NvcGUgfTsKLSAgICAgICAg
ICAgIHJlY29yZC50b3BpYyA9IFN0cmluZyB7IHRvcGljIH07CisgICAgICAgICAgICByZWNvcmQu
c2NvcGUgPSBTdHJpbmc6OmZyb21MYXRpbjEoc2NvcGUpOworICAgICAgICAgICAgcmVjb3JkLnRv
cGljID0gU3RyaW5nOjpmcm9tTGF0aW4xKHRvcGljKTsKIAogICAgICAgICAgICAgZGF0YWJhc2Uu
aW5zZXJ0UmVjb3JkKHJlY29yZCwgW10oYXV0byYmIHJlc3VsdCkgewogICAgICAgICAgICAgICAg
IEFTU0VSVF9UUlVFKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDA3YTQ1ZTBlZjQxNGJmNzQ5NzEyOTJmYzFj
YzJhYTg3NDhhZGQ1MTUuLjFiMWQ5ZmYwZmU4MTYyOTdiYWViMGY2ZGEzYzg1ZWI1Y2ZmM2JlMzAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZm
ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZm
ZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVT
VF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3Np
bmdGaWxlKQogewotICAgIGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29u
dGVudHNPZkZpbGUoU3RyaW5nKCJub3RfZXhpc3RpbmdfZmlsZSIpKTsKKyAgICBhdXRvIGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0cmluZygibm90X2V4
aXN0aW5nX2ZpbGUiX3MpKTsKICAgICBBU1NFUlRfTlVMTChidWZmZXIpOwogfQogCkBAIC01Miw3
ICs1Miw3IEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENv
bnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZVdpdGhDb250ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9O
VUxMKGJ1ZmZlcik7CiAgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7Ci0gICAgRVhQRUNUX1RSVUUo
U3RyaW5nKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmco
YnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAg
RVhQRUNUX1RSVUUoU3RyaW5nOjpmcm9tTGF0aW4xKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0
Ojp0ZXN0RGF0YSgpKSA9PSBTdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IGJ1ZmZlci0+c2l6ZSgpKSk7CiB9CiAKIFRFU1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVz
dCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHAKaW5kZXggZGM0ZTEyODA4OTAyZjUwZDFlOTljODY2OGI0YzE1MmMyZGRhOWQ3My4uNGQy
N2Y0ZmQ0YjU1MjI4NzQzZDNlMmY3Y2M5N2ZiYzQzZjQ0YThlYiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGluZy5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlclRleHRFbmNvZGlu
Zy5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVz
dCwgUXVlcnlFbmNvZGluZykKIHsKICAgICBjaGVja1VSTCh1dGYxNlN0cmluZyh1Imh0dHA6Ly9o
b3N0P8Of8J+YjSPDn/CfmI0iKSwgbnVsbHB0ciwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi8iX3MsICIlQzMlOUYlRjAlOUYlOTglOEQiX3Ms
ICIlQzMlOUYlRjAlOUYlOTglOEQiX3MsIHV0ZjE2U3RyaW5nKHUiaHR0cDovL2hvc3QvPyVDMyU5
RiVGMCU5RiU5OCU4RCMlQzMlOUYlRjAlOUYlOTglOEQiKX0sIHRlc3RUYWJzVmFsdWVGb3JTdXJy
b2dhdGVQYWlycyk7CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBsYXRpbjEoU3RyaW5nKCJsYXRp
bjEiKSk7CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgbGF0aW4xKCJsYXRpbjEiKTsKICAgICBjaGVj
a1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5IHdpdGglMjBzcGFjZXMiX3MsICZsYXRpbjEsIHsiaHR0
cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3MsIDAsICIvIl9zLCAi
cXVlcnklMjB3aXRoJTIwc3BhY2VzIl9zLCBlbXB0eVN0cmluZygpLCAiaHR0cDovL2hvc3QvP3F1
ZXJ5JTIwd2l0aCUyMHNwYWNlcyJfc30pOwogICAgIGNoZWNrVVJMKCJodHRwOi8vaG9zdC8/cXVl
cnkiX3MsICZsYXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwg
Imhvc3QiX3MsIDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9z
dC8/cXVlcnkiX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP1x0cXVlcnkiX3MsICZs
YXRpbjEsIHsiaHR0cCJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImhvc3QiX3Ms
IDAsICIvIl9zLCAicXVlcnkiX3MsIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/cXVlcnki
X3N9KTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUX0YoVVJMUGFyc2VyVGV4dEVuY29kaW5nVGVz
dCwgUXVlcnlFbmNvZGluZykKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvP3F1ZXJ5Il9zLCAm
dW5yZWNvZ25pemVkLCB7Imh0dHAiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiLyJfcywgZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgImh0dHA6Ly9o
b3N0Lz8iX3N9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3QvPyJfcywgJnVucmVjb2duaXpl
ZCwgeyJodHRwIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwg
Ii8iX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJodHRwOi8vaG9zdC8/Il9zfSk7
CiAKLSAgICBQQUw6OlRleHRFbmNvZGluZyBpc284ODU5MShTdHJpbmcoIklTTy04ODU5LTEiKSk7
CisgICAgUEFMOjpUZXh0RW5jb2RpbmcgaXNvODg1OTEoIklTTy04ODU5LTEiKTsKICAgICBTdHJp
bmcgd2l0aFVtbGF1dHMgPSB1dGYxNlN0cmluZzw0Pih7MHhEQywgMHg0MzAsIDB4NDUxLCAnXDAn
fSk7CiAgICAgY2hlY2tVUkwobWFrZVN0cmluZygid3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1
dHMpLCAmaXNvODg1OTEsIHsid3MiX3MsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksICJo
b3N0Il9zLCAwLCAiL3BhdGgiX3MsICIlQzMlOUMlRDAlQjAlRDElOTEiX3MsIGVtcHR5U3RyaW5n
KCksICJ3czovL2hvc3QvcGF0aD8lQzMlOUMlRDAlQjAlRDElOTEiX3N9KTsKICAgICBjaGVja1VS
TChtYWtlU3RyaW5nKCJ3c3M6Ly9ob3N0L3BhdGg/Iiwgd2l0aFVtbGF1dHMpLCAmaXNvODg1OTEs
IHsid3NzIl9zLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCAiaG9zdCJfcywgMCwgIi9w
YXRoIl9zLCAiJUMzJTlDJUQwJUIwJUQxJTkxIl9zLCBlbXB0eVN0cmluZygpLCAid3NzOi8vaG9z
dC9wYXRoPyVDMyU5QyVEMCVCMCVEMSU5MSJfc30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAppbmRleCAyZGQ3ZTRhZTdh
MDFjMjllZjE0YmU4OWZlZGFiMjg1ZDk3NmY5ODAzLi4xYTViNWQ2YWQ4ZGQxNzU4OTY4OTk0NGJk
YmM5NDYzNjgzN2U4MTY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVXNlckFnZW50UXVpcmtzLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKIHN0YXRpYyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0No
cm9tZUJyb3dzZXJRdWlyayhjb25zdCBjaGFyKiB1cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5n
ID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJMKCBTdHJpbmcgeyB1cmwgfSkpOworICAgIFN0
cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21M
YXRpbjEodXJsKSkpOwogCiAgICAgRVhQRUNUX1RSVUUodWFTdHJpbmcuY29udGFpbnMoIkNocm9t
ZSIpKTsKICAgICBFWFBFQ1RfVFJVRSh1YVN0cmluZy5jb250YWlucygiU2FmYXJpIikpOwpAQCAt
NDUsNyArNDUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRGb3JVUkxIYXNDaHJvbWVC
cm93c2VyUXVpcmsoY29uc3QgY2hhciogdXJsKQogCiBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdl
bnRGb3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIHsKLSAgICBT
dHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwoU3RyaW5nIHsgdXJs
IH0pKTsKKyAgICBTdHJpbmcgdWFTdHJpbmcgPSBzdGFuZGFyZFVzZXJBZ2VudEZvclVSTChVUkwo
U3RyaW5nOjpmcm9tTGF0aW4xKHVybCkpKTsKIAogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5j
b250YWlucygiQ2hyb21lIikpOwogICAgIEVYUEVDVF9GQUxTRSh1YVN0cmluZy5jb250YWlucygi
U2FmYXJpIikpOwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRVc2VyQWdlbnRG
b3JVUkxIYXNGaXJlZm94QnJvd3NlclF1aXJrKGNvbnN0IGNoYXIqIHVybCkKIAogc3RhdGljIHZv
aWQgYXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25zdCBjaGFyKiB1
cmwpCiB7Ci0gICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwoVVJM
KFN0cmluZyB7IHVybCB9KSk7CisgICAgU3RyaW5nIHVhU3RyaW5nID0gc3RhbmRhcmRVc2VyQWdl
bnRGb3JVUkwoVVJMKFN0cmluZzo6ZnJvbUxhdGluMSh1cmwpKSk7CiAKICAgICBFWFBFQ1RfVFJV
RSh1YVN0cmluZy5jb250YWlucygiTWFjaW50b3NoIikpOwogICAgIEVYUEVDVF9UUlVFKHVhU3Ry
aW5nLmNvbnRhaW5zKCJNYWMgT1MgWCIpKTsKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIHZvaWQg
YXNzZXJ0VXNlckFnZW50Rm9yVVJMSGFzTWFjUGxhdGZvcm1RdWlyayhjb25zdCBjaGFyKiB1cmwp
CiAvLyB0aGF0IHRoZSBzdGFuZGFyZCB1c2VyIGFnZW50IHNob3VsZCBiZSB1c2VkLikKIHN0YXRp
YyB2b2lkIGFzc2VydFVzZXJBZ2VudEZvclVSTEhhc0VtcHR5UXVpcmsoY29uc3QgY2hhciogdXJs
KQogewotICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKFVSTChT
dHJpbmcgeyB1cmwgfSkpOworICAgIFN0cmluZyB1YVN0cmluZyA9IHN0YW5kYXJkVXNlckFnZW50
Rm9yVVJMKFVSTChTdHJpbmc6OmZyb21MYXRpbjEodXJsKSkpOwogICAgIEVYUEVDVF9GQUxTRSh1
YVN0cmluZy5pc051bGwoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9EYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KaW5kZXgg
NzUzMjgxODRjNGNlNGYxOGViMDVmNjFkMzU2OTAzM2MwZDY5ZDI3MC4uN2ZjN2VmNDE5NGIwNjUx
ZTcyYWZhMGE0ZWQyMTY5MWU4NTRmZGNhNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0RhdGFiYXNlVHJhY2tlclRlc3QubW0K
QEAgLTk5LDcgKzk5LDcgQEAgVEVTVChEYXRhYmFzZVRyYWNrZXIsIERlbGV0ZU9yaWdpbikKICAg
ICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCByZW1vdmUgdGhlIG9yaWdpbidzIGluZm9ybWF0
aW9uIGZyb20gYm90aCB0aGUgT3JpZ2lucwogICAgIC8vIGFuZCBEYXRhYmFzZXMgdGFibGVzLCBh
bmQgcmVtb3ZlIHRoZSBkYXRhYmFzZSBmcm9tIGRpc2suCiAgICAgTlNTdHJpbmcgKndlYlNRTERp
cmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNRTCIp
OwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVURjhT
dHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJhY2tl
ciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywgIndl
YmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChEYXRhYmFzZVRyYWNr
ZXIsIERlbGV0ZU9yaWdpbldoZW5EYXRhYmFzZURvZXNOb3RFeGlzdCkKICAgICAvLyBidXQgbm90
IGFuIGFjdHVhbCBkYXRhYmFzZSBvbiBkaXNrLgogICAgIC8vIFRoZSBpbmZvcm1hdGlvbiBzaG91
bGQgc3RpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZXMuCiAgICAgTlNTdHJpbmcgKndlYlNR
TERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIldlYlNR
TCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0b3J5LlVU
RjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgod2ViU1FMRGlyZWN0
b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRyYWNrZXI+IGRhdGFiYXNlVHJh
Y2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRhYmFzZVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKCJodHRwcyJfcywg
IndlYmtpdC5vcmciX3MsIDQ0Myk7CkBAIC0xNzgsNyArMTc4LDcgQEAgVEVTVChEYXRhYmFzZVRy
YWNrZXIsIERlbGV0ZU9yaWdpbldoZW5EZWxldGluZ0FEYXRhYmFzZUZhaWxzKQogICAgIC8vIElu
IHRoaXMgY2FzZSwgd2Ugc2hvdWxkbid0IHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBlaXRo
ZXIgdGhlIERhdGFiYXNlcyBvcgogICAgIC8vIE9yaWdpbnMgdGFibGVzLgogICAgIE5TU3RyaW5n
ICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnko
QCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNRTERpcmVj
dG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPiBkYXRh
YmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbigiaHR0
cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIFRFU1QoRGF0
YWJhc2VUcmFja2VyLCBEZWxldGVPcmlnaW5XaXRoTWlzc2luZ0VudHJ5SW5EYXRhYmFzZXNUYWJs
ZSkKICAgICAvLyBUaGUgaW5mb3JtYXRpb24gc2hvdWxkIHN0aWxsIGJlIHJlbW92ZWQgZnJvbSB0
aGUgT3JpZ2lucyB0YWJsZSwgYW5kIHRoZQogICAgIC8vIGRhdGFiYXNlIHNob3VsZCBiZSBkZWxl
dGVkIGZyb20gZGlzay4KICAgICBOU1N0cmluZyAqd2ViU1FMRGlyZWN0b3J5ID0gRmlsZVN5c3Rl
bTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiV2ViU1FMIik7Ci0gICAgU3RyaW5nIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkuVVRGOFN0cmluZyk7CisgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCh3ZWJTUUxEaXJlY3RvcnkpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gZGF0YWJhc2VUcmFja2VyID0gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpOwogICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4oImh0dHBzIl9zLCAid2Via2l0Lm9yZyJfcywgNDQzKTsK
QEAgLTI3Miw3ICsyNzIsNyBAQCBURVNUKERhdGFiYXNlVHJhY2tlciwgRGVsZXRlRGF0YWJhc2Up
CiAgICAgLy8gYW5kIGEgZGF0YWJhc2Ugb24gZGlzay4gQWZ0ZXIgdGhlIGRlbGV0aW9uLCB0aGUg
ZGF0YWJhc2Ugc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBmcm9tIGRpc2ssIGFuZCB0aGUgaW5m
b3JtYXRpb24gc2hvdWxkIGJlIGdvbmUgZnJvbSB0aGUgRGF0YWJhc2VzIHRhYmxlLgogICAgIE5T
U3RyaW5nICp3ZWJTUUxEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJl
Y3RvcnkoQCJXZWJTUUwiKTsKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRoKHdlYlNR
TERpcmVjdG9yeS5VVEY4U3RyaW5nKTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
KHdlYlNRTERpcmVjdG9yeSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2Vy
PiBkYXRhYmFzZVRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQ
YXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCk7CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
bigiaHR0cHMiX3MsICJ3ZWJraXQub3JnIl9zLCA0NDMpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIFRF
U1QoRGF0YWJhc2VUcmFja2VyLCBEZWxldGVEYXRhYmFzZVdoZW5EYXRhYmFzZURvZXNOb3RFeGlz
dCkKICAgICAvLyBUZXN0IHRoZSBjYXNlIHdoZXJlIHdlIHRyeSB0byBkZWxldGUgYSBkYXRhYmFz
ZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gZGlzay4KICAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVt
b3ZlIHRoZSBkYXRhYmFzZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBEYXRhYmFzZXMgdGFibGUuCiAg
ICAgTlNTdHJpbmcgKndlYlNRTERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAIldlYlNRTCIpOwotICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgo
d2ViU1FMRGlyZWN0b3J5LlVURjhTdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgod2ViU1FMRGlyZWN0b3J5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRy
YWNrZXI+IGRhdGFiYXNlVHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgoZGF0YWJhc2VEaXJlY3RvcnlQYXRoKTsKICAgICBTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luKCJodHRwcyJfcywgIndlYmtpdC5vcmciX3MsIDQ0Myk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCmluZGV4IDExYjlkNjg2
NTQzZmYzMGExYjZlZDQwYjdhMTUwMDI0NDJkYzEwMmYuLmVhNzRhMzA2Yjc4NjA1M2YyYWMwM2I1
YWQwNzFlNDZhZWJkOTEwMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tCkBAIC0xNDEsNyArMTQxLDcgQEAgUmV0YWluUHRyPFNl
Y0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkyKCkKICAgICAibWlLMVRYdExsV04wNnI0M2FuUXFa
eVJidTVJb0htSEF5YnBrNFN0cTI5d09TQm9aZHlhclFXa2xveWlZSktkWCIKICAgICAib0Rka0tG
OGN3b0JlQWVpUkxrVDQ1c3RSTmtsQmc0VmxnQ0ZFTFBPY1dZTUZPb1NrUWcxOVZTL1ZhSGk0OHQr
eiIKICAgICAiNjY4Qm4xVTNVOWQvaU5DWEZNNzhpS3FvSkNCb1VSeWlybUcvdEk2Z2ZKaUxuMDVU
ejZuWXozMVk0MEZtMVN3ZyIKLSAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoi
KTsKKyAgICAiaGdPeS9UZEpPL05qbVRIQmdwSVRQNmx2NjlRdmFWOXoiX3MpOwogCiAgICAgU3Ry
aW5nIHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSgiIgogICAgICJNSUlGZ0RDQ0EyZ0NDUUQrUVkxSlJu
TTNJakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgpAQCAtMTczLDcgKzE3
Myw3IEBAIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5MigpCiAgICAgIjQ2
aXpob3UzR1NLejNYMWVZcFliWkhGNTJkeG1PVWR2cFNvcWZtbE1GMUVndjk0Y3JEMXhoOWFzZGpn
MkRuWGMiCiAgICAgIjk0OFl4UGFGam9PR2Q2WW5jK2Z2OXBKempUanhpbWJJaVdtMnI2eXQyajlo
QXVLSlhwTk9JYTRvSU1BSUdqQ2kiCiAgICAgIkpBSDJueEtHdXF0QUsyaFdiQUN1NjFSVDVnQXFB
di9oQjlKWW5jMk9pUTJWbWpZa09rMkdFZElqbjB4U2dYN1ciCi0gICAgIm1JL2hIYnhLTUczUmt2
OXExQ3grV0IvdjF0OD0iKTsKKyAgICAibUkvaEhieEtNRzNSa3Y5cTFDeCtXQi92MXQ4PSJfcyk7
CiAKICAgICBhdXRvIHByaXZhdGVLZXlCeXRlcyA9IGJhc2U2NERlY29kZShwZW1FbmNvZGVkUHJp
dmF0ZUtleSk7CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gYmFzZTY0RGVjb2RlKHBlbUVu
Y29kZWRDZXJ0aWZpY2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNmMzY2EzZDUyNDgwYzk0
ODE3ODdjYjNiMTBlZjk5Y2FhM2U4NTM4Yy4uZTM2MjIxMTg2Nzg4ZDZhY2RhNGRmNGJhYWQzNDVh
ZWE4YzRhYTBiZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRp
YyB2b2lkIHNpZ25VbmxpbmthYmxlVG9rZW5BbmRTZW5kU2VjcmV0VG9rZW4oVG9rZW5TaWduaW5n
UGFydHkgc2lnbmluZ1BhcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShz
dHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5z
aXplKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0MlN0cmluZyA9
IFN0cmluZyhyZXF1ZXN0Mi5kYXRhKCksIHJlcXVlc3QyLnNpemUoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6
U291cmNlID8gU3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiIpIDogU3RyaW5nKCJkZXN0
aW5hdGlvbl91bmxpbmthYmxlX3Rva2VuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gInNvdXJj
ZV91bmxpbmthYmxlX3Rva2VuIl9zIDogImRlc3RpbmF0aW9uX3VubGlua2FibGVfdG9rZW4iX3M7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHN0YXJ0ID0gcmVxdWVzdDJTdHJpbmcuZmlu
ZChrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsg
MzsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0gcmVxdWVzdDJTdHJpbmcuZmlu
ZCgnIicsIHN0YXJ0KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBzdGF0aWMgdm9pZCBzaWduVW5saW5r
YWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmluZ1BhcnR5IHNpZ25pbmdQYXJ0
eQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byByZXF1ZXN0
NFN0cmluZyA9IFN0cmluZyhyZXF1ZXN0NC5kYXRhKCksIHJlcXVlc3Q0LnNpemUoKSk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGtleSA9IHNpZ25pbmdQ
YXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6U291cmNlID8gU3RyaW5nKCJzb3VyY2Vfc2VjcmV0
X3Rva2VuIikgOiBTdHJpbmcoImRlc3RpbmF0aW9uX3NlY3JldF90b2tlbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gc2lnbmluZ1BhcnR5ID09
IFRva2VuU2lnbmluZ1BhcnR5OjpTb3VyY2UgPyAic291cmNlX3NlY3JldF90b2tlbiJfcyA6ICJk
ZXN0aW5hdGlvbl9zZWNyZXRfdG9rZW4iX3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXV0byBzdGFydCA9IHJlcXVlc3Q0U3RyaW5nLmZpbmQoa2V5KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBrZXkubGVuZ3RoKCkg
KyAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gZW5kID0g
cmVxdWVzdDRTdHJpbmcuZmluZCgnIicsIHN0YXJ0KTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0
aWMgdm9pZCBzaWduVW5saW5rYWJsZVRva2VuQW5kU2VuZFNlY3JldFRva2VuKFRva2VuU2lnbmlu
Z1BhcnR5IHNpZ25pbmdQYXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gdG9rZW5WZWN0b3IgPSBiYXNlNjRVUkxEZWNvZGUodG9rZW4pOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdG9rZW5EYXRhID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczp0b2tlblZlY3Rvci0+ZGF0YSgpIGxlbmd0aDp0
b2tlblZlY3Rvci0+c2l6ZSgpXSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrZXkgPSBzaWduaW5nUGFydHkgPT0gVG9rZW5TaWduaW5nUGFydHk6OlNvdXJjZSA/
IFN0cmluZygic291cmNlX3NlY3JldF90b2tlbl9zaWduYXR1cmUiKSA6IFN0cmluZygiZGVzdGlu
YXRpb25fc2VjcmV0X3Rva2VuX3NpZ25hdHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtleSA9IHNpZ25pbmdQYXJ0eSA9PSBUb2tlblNpZ25pbmdQYXJ0eTo6
U291cmNlID8gInNvdXJjZV9zZWNyZXRfdG9rZW5fc2lnbmF0dXJlIl9zIDogImRlc3RpbmF0aW9u
X3NlY3JldF90b2tlbl9zaWduYXR1cmUiX3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnQgPSByZXF1ZXN0NFN0cmluZy5maW5kKGtleSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0ga2V5Lmxlbmd0aCgpICsgMzsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSByZXF1ZXN0NFN0
cmluZy5maW5kKCciJywgc3RhcnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5k
ZXggNWJjZWE4MTA5M2NmZWU1Zjg4MmZmNjk2ZjU4NmY5MjY5ODc4YmQxMy4uZGJlODAwODg3Yzli
YzQ2NGUzZTVlOTU0NTQ0OWE5MzkyN2ZjNGIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCkBAIC03Mzg5LDIzICs3Mzg5LDIzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRl
QmFja0FmdGVyTmF2aWdhdGluZ0F3YXlGcm9tQ09PUCkKIAogZW51bSBjbGFzcyBJc1NhbWVPcmln
aW4gOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6
IGJvb2wgeyBObywgWWVzIH07Ci1zdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIHNvdXJjZUNPRVAsIGNvbnN0IGNoYXIq
IGRlc3RpbmF0aW9uQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT0VQLCBJc1NhbWVPcmln
aW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVj
dCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQorc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdChBU0NJSUxpdGVyYWwgc291cmNlQ09PUCwgQVNDSUlMaXRlcmFsIHNvdXJjZUNPRVAsIEFT
Q0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPT1AsIEFTQ0lJTGl0ZXJhbCBkZXN0aW5hdGlvbkNPRVAs
IElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRvU2VydmVy
U2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCiB7CiAgICAgdXNpbmcgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBzb3VyY2VI
ZWFkZXJzOwogICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDb250ZW50LVR5cGUiX3MsICJ0ZXh0L2h0
bWwiX3MpOwogICAgIGlmIChzb3VyY2VDT09QKQotICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgi
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiX3MsIFN0cmluZyhzb3VyY2VDT09QKSk7CisgICAg
ICAgIHNvdXJjZUhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgc291
cmNlQ09PUCk7CiAgICAgaWYgKHNvdXJjZUNPRVApCi0gICAgICAgIHNvdXJjZUhlYWRlcnMuYWRk
KCJDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoc291cmNlQ09FUCkpOwor
ICAgICAgICBzb3VyY2VIZWFkZXJzLmFkZCgiQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSJf
cywgc291cmNlQ09FUCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBkZXN0aW5hdGlv
bkhlYWRlcnM7CiAgICAgZGVzdGluYXRpb25IZWFkZXJzLmFkZCgiQ29udGVudC1UeXBlIl9zLCAi
dGV4dC9odG1sIl9zKTsKICAgICBpZiAoZGVzdGluYXRpb25DT09QKQotICAgICAgICBkZXN0aW5h
dGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJfcywgU3RyaW5nKGRl
c3RpbmF0aW9uQ09PUCkpOworICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJfcywgZGVzdGluYXRpb25DT09QKTsKICAgICBpZiAoZGVzdGlu
YXRpb25DT0VQKQotICAgICAgICBkZXN0aW5hdGlvbkhlYWRlcnMuYWRkKCJDcm9zcy1PcmlnaW4t
RW1iZWRkZXItUG9saWN5Il9zLCBTdHJpbmcoZGVzdGluYXRpb25DT0VQKSk7CisgICAgICAgIGRl
c3RpbmF0aW9uSGVhZGVycy5hZGQoIkNyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kiX3MsIGRl
c3RpbmF0aW9uQ09FUCk7CiAgICAgSFRUUFJlc3BvbnNlIGRlc3RpbmF0aW9uUmVzcG9uc2UoV1RG
TW92ZShkZXN0aW5hdGlvbkhlYWRlcnMpLCAicG9wdXAiX3MpOwogCiAgICAgSFRUUFNlcnZlciBz
ZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25z
ZT4+IHsgfSwgSFRUUFNlcnZlcjo6UHJvdG9jb2w6Okh0dHBzKTsKQEAgLTc0MjcsOCArNzQyNyw4
IEBAIHN0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNl
Q09PUCwgY29uc3QgY2hhciogc291cmNlQ09FCiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKICAgICBhdXRvIHByb2Nl
c3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3Vy
YXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgYm9vbCBzb3VyY2VT
aG91bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPSBzb3VyY2VDT09QICYmICFzdHJjbXAoc291cmNl
Q09PUCwgInNhbWUtb3JpZ2luIikgJiYgc291cmNlQ09FUCAmJiAhc3RyY21wKHNvdXJjZUNPRVAs
ICJyZXF1aXJlLWNvcnAiKTsKLSAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QICYmICFzdHJjbXAoZGVzdGluYXRpb25DT09QLCAi
c2FtZS1vcmlnaW4iKSAmJiBkZXN0aW5hdGlvbkNPRVAgJiYgIXN0cmNtcChkZXN0aW5hdGlvbkNP
RVAsICJyZXF1aXJlLWNvcnAiKTsKKyAgICBib29sIHNvdXJjZVNob3VsZEJlQ3Jvc3NPcmlnaW5J
c29sYXRlZCA9IHNvdXJjZUNPT1AgPT0gInNhbWUtb3JpZ2luIl9zICYmIHNvdXJjZUNPRVAgPT0g
InJlcXVpcmUtY29ycCJfczsKKyAgICBib29sIGRlc3RpbmF0aW9uU2hvdWxkQmVDcm9zc09yaWdp
bklzb2xhdGVkID0gZGVzdGluYXRpb25DT09QID09ICJzYW1lLW9yaWdpbiJfcyAmJiBkZXN0aW5h
dGlvbkNPRVAgPT0gInJlcXVpcmUtY29ycCJfczsKICAgICBFWFBFQ1RfVFJVRShzb3VyY2VTaG91
bGRCZUNyb3NzT3JpZ2luSXNvbGF0ZWQgPT0gZGVzdGluYXRpb25TaG91bGRCZUNyb3NzT3JpZ2lu
SXNvbGF0ZWQgfHwgZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpOwogCiAgICAgYXV0byB3
ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CkBAIC03NTgyLDIxMSArNzU4MiwyMTEgQEAgc3RhdGljIHZvaWQgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBzb3Vy
Y2VDT0UKIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KHsgfSwgeyB9LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUi
X3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAi
dW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIl9zLCB7IH0sICJzYW1lLW9yaWdpbiJfcywgInVuc2FmZS1ub25lIl9zLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQog
CiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW40
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInVuc2FmZS1u
b25lIiwgInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmln
aW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJl
LWNvcnAiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJzYW1l
LW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0s
IHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworICAg
IHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJ1bnNhZmUtbm9u
ZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgbnVs
bHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCB7IH0sIHsgfSwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAyKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9zLCB7
IH0sICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZl
LW5vbmUiLCAidW5zYWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVu
c2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwNCkKIHsKLSAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIs
ICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInVuc2FmZS1ub25lIl9zLCAidW5z
YWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09FUFNhbWVPcmlnaW5BbGxvd1BvcHVw
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
IiwgInJlcXVpcmUtY29ycCIsIG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgInJlcXVpcmUtY29ycCJf
cywgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7
IH0sICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7
Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0s
IElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMykKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsICJ1bnNhZmUt
bm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywg
InVuc2FmZS1ub25lIl9zLCAic2FtZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QQW5kQ09F
UFNhbWVPcmlnaW5Ub0NPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCAi
cmVxdWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9t
Q09PUEFuZENPRVBTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKIHsKICAgICAvLyBTaG91bGQg
c3dhcCBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBtaXNzaW5nIENPRVAuCi0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAicmVxdWlyZS1jb3JwIiwgInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3Jp
Z2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7CiAgICAgLy8gU2hvdWxkIHN3YXAgYmVjYXVz
ZSB0aGUgc291cmNlIGlzIG1pc3NpbmcgQ09FUC4KLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUg
cmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCi0gICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9
LCAic2FtZS1vcmlnaW4iX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENPRVBT
YW1lT3JpZ2luV2l0aFJlZGlyZWN0KQogewogICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVz
ZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4gYW5kIENPRVA9cmVx
dWlyZS1jb3JwLgotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInJl
cXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywg
InNhbWUtb3JpZ2luIl9zLCAicmVxdWlyZS1jb3JwIl9zLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKIHsK
LSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBl
Y3RTd2FwOjpObyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCh7IH0sIHsgfSwgeyB9LCB7
IH0sIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RT
d2FwOjpObyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCh7IH0sIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8s
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjIpCiB7Ci0g
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZl
LW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbjMpCiB7Ci0gICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCBudWxscHRyLCAic2FtZS1vcmln
aW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5z
YWZlLW5vbmUiX3MsIHsgfSwgInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
IH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9y
aWdpbjQpCiB7Ci0gICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAidW5z
YWZlLW5vbmUiLCAic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInNhbWUt
b3JpZ2luIl9zLCAidW5zYWZlLW5vbmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QQW5kQ09FUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCAicmVx
dWlyZS1jb3JwIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoeyB9LCB7IH0sICJz
YW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsIHsg
fSwgeyB9LCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3Nz
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsICJ1bnNhZmUtbm9uZSIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAidW5zYWZlLW5v
bmUiX3MsIHsgfSwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4zKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwgSXNT
YW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIl9zLCAidW5zYWZlLW5v
bmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjQpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCAidW5zYWZlLW5v
bmUiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCAidW5zYWZlLW5v
bmUiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCAic2FtZS1vcmlnaW4iLCBu
dWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3Ms
IHsgfSwgInNhbWUtb3JpZ2luIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BBbmRDT0VQU2FtZU9yaWdpblRvQ09PUEFuZENP
RVBTYW1lT3JpZ2luKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgInJlcXVpcmUtY29ycCIsICJzYW1lLW9yaWdpbiIsICJyZXF1aXJlLWNvcnAiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAi
X3MsICJzYW1lLW9yaWdpbiJfcywgInJlcXVpcmUtY29ycCJfcywgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUEFuZENPRVBTYW1lT3JpZ2lu
VG9DT09QU2FtZU9yaWdpbikKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbiIsICJyZXF1aXJlLWNvcnAiLCAic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNvcnAiX3Ms
ICJzYW1lLW9yaWdpbiJfcywgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUEFuZENPRVBTYW1lT3JpZ2lu
KQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwg
InNhbWUtb3JpZ2luIiwgInJlcXVpcmUtY29ycCIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiJfcywgeyB9LCAic2FtZS1vcmlnaW4iX3MsICJyZXF1aXJlLWNv
cnAiX3MsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2lu
RnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVw
Il9zLCB7IH0sIHsgfSwgeyB9LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCiB7Ci0gICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCAidW5z
YWZlLW5vbmUiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbi1hbGxvdy1wb3B1cCJfcywgeyB9LCAidW5zYWZlLW5vbmUiX3MsIHsgfSwgSXNTYW1l
T3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7CiB9
CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbkFsbG93UG9wdXAzKQogewotICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgInVuc2FmZS1ub25lIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
X3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCB7IH0sIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwNCkKIHsKLSAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsICJ1bnNhZmUtbm9uZSIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8p
OworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIl9z
LCAidW5zYWZlLW5vbmUiX3MsICJ1bnNhZmUtbm9uZSJfcywgInVuc2FmZS1ub25lIl9zLCBJc1Nh
bWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
IH0KIAogc3RhdGljIGJvb2wgaXNKSVRFbmFibGVkKFdLV2ViVmlldyAqd2ViVmlldykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0KaW5kZXggYzgxNzIxODRhMGExZDc1NmM0ZThhMTdhYjE0YmJhM2U2NjAy
MTcyMC4uZjQ3MGU2ZWNhNmM4NGM3MDA2OWU2YTU1OTBiYzcwMWFlOWJjMDAwYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNl
V29ya2VyQmFzaWMubW0KQEAgLTIxMzUsOSArMjEzNSw5IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IENvbnRlbnRSdWxlTGlzdCkKICAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKICAg
ICBIVFRQU2VydmVyIHNlcnZlcihbXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7CiAgICAgICAg
IGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAg
ICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29udGVudC1UeXBlIiwg
InRleHQvaHRtbCIgfX0sIG1haW5CeXRlcykuc2VyaWFsaXplKCksIFs9XSB7CisgICAgICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAidGV4
dC9odG1sIl9zIH0gfSwgbWFpbkJ5dGVzKS5zZXJpYWxpemUoKSwgWz1dIHsKICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYpIHsK
LSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKEhUVFBSZXNwb25zZSh7eyAiQ29u
dGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBjb250ZW50UnVsZUxpc3RX
b3JrZXJTY3JpcHQpLnNlcmlhbGl6ZSgpLCBbPV0geworICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNlKHsgeyAiQ29udGVudC1UeXBlIl9zLCAiYXBwbGljYXRp
b24vamF2YXNjcmlwdCJfcyB9IH0sIGNvbnRlbnRSdWxlTGlzdFdvcmtlclNjcmlwdCkuc2VyaWFs
aXplKCksIFs9XSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbPV0oVmVjdG9yPGNoYXI+JiYgbGFzdFJlcXVlc3QpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKChjb25zdCBjaGFyKilsYXN0UmVx
dWVzdC5kYXRhKCksICJhbGxvd2Vkc3VicmVzb3VyY2UiLCBsYXN0UmVxdWVzdC5zaXplKCkpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQoSFRUUFJlc3BvbnNl
KCJzdWNjZXNzZnVsIGZldGNoIl9zKS5zZXJpYWxpemUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZlMTgw
ZGQzOS4uZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3MTA0NDQ3NWU1MjhlYTNmYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMjgzLDggKzI4Myw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgewogCi1jb25zdCBjaGFyIHBhcmVudEZyYW1l
W10gPSAiPGh0bWw+PGlmcmFtZSBpZD0ndGhlRnJhbWUnIHNyYz0naUZyYW1lLmh0bWwnPjwvaWZy
YW1lPjwvaHRtbD4iOwotY29uc3QgY2hhciBzdWJGcmFtZVtdID0KK3N0YXRpYyBjb25zdGV4cHIg
YXV0byBwYXJlbnRGcmFtZSA9ICI8aHRtbD48aWZyYW1lIGlkPSd0aGVGcmFtZScgc3JjPSdpRnJh
bWUuaHRtbCc+PC9pZnJhbWU+PC9odG1sPiJfczsKK3N0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJG
cmFtZSA9CiAiPGh0bWw+IgogIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0naW5wdXQnPiIKICI8c2Ny
aXB0PiIKQEAgLTI5OSw3ICsyOTksNyBAQCBjb25zdCBjaGFyIHN1YkZyYW1lW10gPQogIiAgICB9
OyIKICIgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsiCiAiPC9zY3JpcHQ+
IgotIjwvaHRtbD4iOworIjwvaHRtbD4iX3M7CiAKIHN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0
dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RTU0wuY3BwCmluZGV4
IDA1NDA1NTM3YTc1NzQ4ZDBmZWZmOGRmNThkNDY1MDZiMDZkMjE1YWUuLmQwMjBkNmU4ZWM4N2E3
MzU3MDRhZjVmNWJmMmJhODI0ZmRmYjhkNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0U1NMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qo
Y2VydGlmaWNhdGUpKTsKICAgICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlOwogICAg
ICAgICBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsKLSAgICAgICAgbV9mYWlsaW5nVVJMID0gVVJM
KFN0cmluZyB7IGZhaWxpbmdVUkkgfSk7CisgICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTChTdHJp
bmc6OmZyb21MYXRpbjEoZmFpbGluZ1VSSSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RV
SUNsaWVudC5jcHAKaW5kZXggYjdjMWNjMWM1YzUzYjk3MDZlZGQ0YmM0Zjc3MmNhMjk2M2QxMzQy
Zi4uZDg1NTA4YTVkMzJlNmE3NzA1YzMwZTdlZWU5ODZhODgxZTE0MDRkZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAK
QEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCB3aW5kb3dQcm9w
ZXJ0aWVzTm90aWZ5Q2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqIHBhcmFtU3BlYywgVUlD
bGllbnRUZXN0KiB0ZXN0KQogICAgIHsKLSAgICAgICAgdGVzdC0+bV93aW5kb3dQcm9wZXJ0aWVz
Q2hhbmdlZC5hZGQoU3RyaW5nIHsgZ19wYXJhbV9zcGVjX2dldF9uYW1lKHBhcmFtU3BlYykgfSk7
CisgICAgICAgIHRlc3QtPm1fd2luZG93UHJvcGVydGllc0NoYW5nZWQuYWRkKFN0cmluZzo6ZnJv
bUxhdGluMShnX3BhcmFtX3NwZWNfZ2V0X25hbWUocGFyYW1TcGVjKSkpOwogICAgIH0KIAogICAg
IHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB2aWV3Q3JlYXRlQ2FsbGJhY2soV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbiwgVUlDbGllbnRUZXN0
KiB0ZXN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5kZXggYzU2OTAyYTIyOTcwNzIyZDNjYzExNmJi
YTMxMGRkYjZiNDNkZTg5Yi4uN2RlZDY2Y2U2NmRjNWE0YWEzMzIzNzEwOTBhMGE0OTBlOThlMzc1
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC00NzYsNyArNDc2LDcgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvblBhZ2VJRChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
ICAgICAvLyBSZWdpc3RlciBhIGN1c3RvbSBVUkkgc2NoZW1lIHRvIHRlc3QgaGlzdG9yeSBuYXZp
Z2F0aW9uLgogICAgIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lKHRlc3Qt
Pm1fd2ViQ29udGV4dC5nZXQoKSwgImZvbyIsCiAgICAgICAgIFtdKFdlYktpdFVSSVNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QsIGdwb2ludGVyKSB7Ci0gICAgICAgICAgICBVUkwgdXJsID0gVVJMKFN0
cmluZyB7IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSB9KTsKKyAg
ICAgICAgICAgIFVSTCB1cmwgPSBVUkwoU3RyaW5nOjpmcm9tTGF0aW4xKHdlYmtpdF91cmlfc2No
ZW1lX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSkpOwogICAgICAgICAgICAgR1JlZlB0cjxHSW5w
dXRTdHJlYW0+IGlucHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9u
ZXcoKSk7CiAgICAgICAgICAgICBjaGFyKiBodG1sID0gZ19zdHJkdXBfcHJpbnRmKCI8aHRtbD48
aGVhZD48dGl0bGU+JXM8L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiIsIHVybC5o
b3N0KCkgPT0gImhvc3Q1IiA/ICJUaXRsZTUiIDogIlRpdGxlNiIpOwogICAgICAgICAgICAgZ19t
ZW1vcnlfaW5wdXRfc3RyZWFtX2FkZF9kYXRhKEdfTUVNT1JZX0lOUFVUX1NUUkVBTShpbnB1dFN0
cmVhbS5nZXQoKSksIGh0bWwsIHN0cmxlbihodG1sKSwgZ19mcmVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNv
bnRleHQuY3BwCmluZGV4IGE0M2M5M2VhOTg0YzNhNmZiNWZiNDA5YTIwN2JjN2Y4NjU3M2NkN2Qu
LjMxMjA3OGY3Y2E0YWE5MDc5ZGI0NjgzMDk0ODA1ZWFiZWY5MjM4ZmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogU3RyaW5nIGdlbmVy
YXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKIHsKLSAgICBTdHJpbmcgYmFz
ZVN0cmluZygiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU3ODkwIik7CisgICAgU3Ry
aW5nIGJhc2VTdHJpbmcoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Nzg5MCJfcyk7
CiAgICAgdW5zaWduZWQgYmFzZUxlbmd0aCA9IGJhc2VTdHJpbmcubGVuZ3RoKCk7CiAKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggYTg0ZGE1ZWEyZjBlYTM2ZTE5
N2RiOTMwYjA0YzQ3MjM3ODU0N2Y5OS4uOGQxMDUyNjhhNmZjM2M2MWQ3MDM0ZDM3ZDAwMmM5OGFi
Yjc1MjA5NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4
dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiAgICAgY29udGV4dE1lbnVDb3B5TGluayh3ZWJW
aWV3LmdldCgpLCAwKTsKICAgICAKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0
ZWJvYXJkOltOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdXTsKLSAgICBFWFBFQ1RfRVEo
U3RyaW5nKCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyhbdXJsIGFic29sdXRlU3Ry
aW5nXSkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoW3VybCBhYnNvbHV0ZVN0cmluZ10pLCAiaHR0
cDovL3d3dy53ZWJraXQub3JnLyJfcyk7CiAKICAgICBjb250ZXh0TWVudUNvcHlMaW5rKHdlYlZp
ZXcuZ2V0KCksIDEpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvV2ViVmlld0NhblBhc3RlVVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvV2ViVmlld0NhblBhc3RlVVJMLm1tCmluZGV4IGMxN2E2Mjg1NzFkMjg5MTVmZTJiOWVmNTEx
ODcyMDYzNWIwYjgzYTMuLjEwYzQzMjFmZGU3NzAyYjcwN2IxYjBlZjU0ZWY1OTNjNmJkOTFiMzAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdDYW5QYXN0
ZVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2FuUGFz
dGVVUkwubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDYW5Q
YXN0ZVVSTCkKICAgICBET01IVE1MQW5jaG9yRWxlbWVudCAqYW5jaG9yID0gKERPTUhUTUxBbmNo
b3JFbGVtZW50ICopW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yOkAiYSJdOwogICAgIE5T
U3RyaW5nICp0ZXh0ID0gW2FuY2hvciBocmVmXTsKICAgICAKLSAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIiksIFN0cmluZyh0ZXh0KSk7CisgICAgRVhQRUNUX0VR
KFN0cmluZyh0ZXh0KSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3MpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tCmluZGV4IDNhMmZhZGVhNmEwNDIyMzUyZmQyN2M3MWMwZTYxMGExYjBjOTc5YWEuLmMzMzI3
NjhlYTAyOWFiMjU0OGU2ZmY2YmRhNTRlMTNlM2QzZTY2MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNo
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tCkBAIC02NCw3ICs2NCw3IEBAIC0gKHZvaWQpd2ViVmlldzoo
V2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOihOU1VSTCAq
KVVSTCBkCiAKIC0odm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0
QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFt
ZTooV2ViRnJhbWUgKilmcmFtZQogewotICAgIEVYUEVDVF9FUShTdHJpbmcoIlBBU1MiKSwgU3Ry
aW5nKG1lc3NhZ2UpKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKG1lc3NhZ2UpLCAiUEFTUyJfcyk7
CiAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9I
VFRQU2VydmVyLm1tCmluZGV4IDI5NDkwMjVmNzA5YmY0MTNiNGFmNGI2OWY3MzMwZWRmNWMxMmFl
NmIuLjBmMmE3YzdkMzhiMzZlZDdhNTI3MTlmMDYzMDUxNGMxM2QyZDc1NGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2Nyw5ICs0NjcsOSBAQCB2b2lkIENv
bm5lY3Rpb246OndlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29ubmVjdGlvbkhhbmRsZQogICAgICAgICB9OwogCiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChI
VFRQUmVzcG9uc2UoMTAxLCB7Ci0gICAgICAgICAgICB7ICJVcGdyYWRlIiwgIndlYnNvY2tldCIg
fSwKLSAgICAgICAgICAgIHsgIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIgfSwKLSAgICAgICAgICAg
IHsgIlNlYy1XZWJTb2NrZXQtQWNjZXB0Iiwgd2ViU29ja2V0QWNjZXB0VmFsdWUocmVxdWVzdCkg
fQorICAgICAgICAgICAgeyAiVXBncmFkZSJfcywgIndlYnNvY2tldCJfcyB9LAorICAgICAgICAg
ICAgeyAiQ29ubmVjdGlvbiJfcywgIlVwZ3JhZGUiX3MgfSwKKyAgICAgICAgICAgIHsgIlNlYy1X
ZWJTb2NrZXQtQWNjZXB0Il9zLCB3ZWJTb2NrZXRBY2NlcHRWYWx1ZShyZXF1ZXN0KSB9CiAgICAg
ICAgIH0pLnNlcmlhbGl6ZShIVFRQUmVzcG9uc2U6OkluY2x1ZGVDb250ZW50TGVuZ3RoOjpObyks
IFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KQEAgLTYzMyw3ICs2MzMs
NyBAQCBWZWN0b3I8dWludDhfdD4gSFRUUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCkKICAgICAi
cTcrVGZrMU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJ
c3FoZU94dCIKICAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1
ZUgvamlVRkhXUnNoYTNBZG5XNUxXYSIKICAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3
QWEwY3M0VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3
bXJlOVhId2tJOE1kSzVzPSIpOworICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9Il9z
KTsKICAgICAKICAgICBhdXRvIGRlY29kZWRDZXJ0aWZpY2F0ZSA9IGJhc2U2NERlY29kZShwZW1F
bmNvZGVkQ2VydGlmaWNhdGUpOwogICAgIHJldHVybiBXVEZNb3ZlKCpkZWNvZGVkQ2VydGlmaWNh
dGUpOwpAQCAtNjkxLDcgKzY5MSw3IEBAIFZlY3Rvcjx1aW50OF90PiBIVFRQU2VydmVyOjp0ZXN0
UHJpdmF0ZUtleSgpCiAgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdI
QzZiVldwcTVGQTJNQmhmNGROako0VURsblQiCiAgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlE
OGRtZ1QrVEJuT09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCiAgICAgImRFT2J2Y3BT
aFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUi
Ci0gICAgInFKZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09Iik7CisgICAgInFKZlU4YmJk
YnUycGk0N1k0RmRKSzBITGZmbDVSdz09Il9zKTsKIAogICAgIGF1dG8gZGVjb2RlZFByaXZhdGVL
ZXkgPSBiYXNlNjREZWNvZGUocGVtRW5jb2RlZFByaXZhdGVLZXkpOwogICAgIHJldHVybiBXVEZN
b3ZlKCpkZWNvZGVkUHJpdmF0ZUtleSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDI4MDM0MTE0MGYw
MmY4NGY3OTQ5NGVlYzRiN2UzNmIxMWMwOTlkODMuLjhkZmE0ZTIzZjRlNDkwMjUyYjM5YTRiNjY3
ZmFiOTMyMjVjZGFjZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJL
aXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xp
Yi9XZWJLaXRHTGliL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCBD
U3RyaW5nIFdlYktpdFRlc3RTZXJ2ZXI6OmdldFdlYlNvY2tldFVSSUZvclBhdGgoY29uc3QgY2hh
ciogcGF0aCkgY29uc3QKIHsKICAgICBnX2Fzc2VydF9mYWxzZShtX2Jhc2VXZWJTb2NrZXRVUkwu
aXNOdWxsKCkpOwogICAgIGdfYXNzZXJ0X3RydWUocGF0aCAmJiAqcGF0aCA9PSAnLycpOwotICAg
IHJldHVybiBVUkwobV9iYXNlV2ViU29ja2V0VVJMLCBTdHJpbmcgeyBwYXRoICsgMSB9KS5zdHJp
bmcoKS51dGY4KCk7IC8vIElnbm9yZSB0aGUgbGVhZGluZyBzbGFzaC4KKyAgICByZXR1cm4gVVJM
KG1fYmFzZVdlYlNvY2tldFVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGggKyAxKSkuc3RyaW5n
KCkudXRmOCgpOyAvLyBJZ25vcmUgdGhlIGxlYWRpbmcgc2xhc2guCiB9CiAKIENTdHJpbmcgV2Vi
S2l0VGVzdFNlcnZlcjo6Z2V0VVJJRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewot
ICAgIHJldHVybiBVUkwobV9iYXNlVVJMLCBTdHJpbmcgeyBwYXRoIH0pLnN0cmluZygpLnV0Zjgo
KTsKKyAgICByZXR1cm4gVVJMKG1fYmFzZVVSTCwgU3RyaW5nOjpmcm9tTGF0aW4xKHBhdGgpKS5z
dHJpbmcoKS51dGY4KCk7CiB9CiAKIHVuc2lnbmVkIFdlYktpdFRlc3RTZXJ2ZXI6OnBvcnQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250
cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJv
bGxlckd0ay5jcHAKaW5kZXggMmE4ODUyNzE0YWVmZjFhMjE5ZDE3ZGE1MmY4ZTU3ZTdlYjY1ZTkx
OC4uNDJmYzBiNGYxM2MxNGFmNDY0OWM2Njg1MTIzZjM2MTAxMGUyZmVlMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBA
IC0xODUsMTEgKzE4NSwxMSBAQCBzdGF0aWMgUmVmPEpTT046Ok9iamVjdD4gdG9KU09OT2JqZWN0
KEdWYXJpYW50KiB2YXJpYW50KQogICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wKCZpdGVy
LCAieyZzdn0iLCAma2V5LCAmdmFsdWUpKSB7CiAgICAgICAgIGNvbnN0IEdWYXJpYW50VHlwZSog
dHlwZSA9IGdfdmFyaWFudF9nZXRfdHlwZSh2YWx1ZSk7CiAgICAgICAgIGlmICh0eXBlICYmIGdf
dmFyaWFudF90eXBlX2VxdWFsKHR5cGUsIEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QpKQotICAgICAg
ICAgICAganNvbk9iamVjdC0+c2V0T2JqZWN0KFN0cmluZyB7IGtleSB9LCB0b0pTT05PYmplY3Qo
dmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3QtPnNldE9iamVjdChTdHJpbmc6OmZyb21M
YXRpbjEoa2V5KSwgdG9KU09OT2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUg
JiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVfU1RSSU5HKSkKLSAg
ICAgICAgICAgIGpzb25PYmplY3QtPnNldFN0cmluZyhTdHJpbmcgeyBrZXkgfSwgU3RyaW5nIHsg
Z192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpIH0pOworICAgICAgICAgICAganNv
bk9iamVjdC0+c2V0U3RyaW5nKFN0cmluZzo6ZnJvbUxhdGluMShrZXkpLCBTdHJpbmc6OmZyb21M
YXRpbjEoZ192YXJpYW50X2dldF9zdHJpbmcodmFsdWUsIG51bGxwdHIpKSk7CiAgICAgICAgIGVs
c2UgaWYgKHR5cGUgJiYgZ192YXJpYW50X3R5cGVfZXF1YWwodHlwZSwgR19WQVJJQU5UX1RZUEVf
RE9VQkxFKSkKLSAgICAgICAgICAgIGpzb25PYmplY3QtPnNldERvdWJsZShTdHJpbmcgeyBrZXkg
fSwgZ192YXJpYW50X2dldF9kb3VibGUodmFsdWUpKTsKKyAgICAgICAgICAgIGpzb25PYmplY3Qt
PnNldERvdWJsZShTdHJpbmc6OmZyb21MYXRpbjEoa2V5KSwgZ192YXJpYW50X2dldF9kb3VibGUo
dmFsdWUpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzb25PYmplY3Q7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvbWFpbi5jcHAgYi9Ub29scy9sbGRiL2xsZGJXZWJL
aXRUZXN0ZXIvbWFpbi5jcHAKaW5kZXggY2YxMzFhZWJhMGFlMzg2ODkzNzgzODYwZWRmYzg0MTUy
NGUxNzg4Yy4uYzNmMGQzOTcyMjM3ZWJkMzYzNTgxNjMyYzhjY2U0ODNmZWE1YzJiZCAxMDA2NDQK
LS0tIGEvVG9vbHMvbGxkYi9sbGRiV2ViS2l0VGVzdGVyL21haW4uY3BwCisrKyBiL1Rvb2xzL2xs
ZGIvbGxkYldlYktpdFRlc3Rlci9tYWluLmNwcApAQCAtNTcsMTMgKzU3LDEzIEBAIGVudW0gY2xh
c3MgRXhhbXBsZUZsYWdzIHsKIAogc3RhdGljIHZvaWQgdGVzdFN1bW1hcnlQcm92aWRlcnMoKQog
ewotICAgIFN0cmluZyBhTnVsbFN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFOdWxsU3RyaW5n
IHsgfTsKICAgICBTdHJpbmdJbXBsKiBhTnVsbFN0cmluZ0ltcGwgPSBhTnVsbFN0cmluZy5pbXBs
KCk7CiAKLSAgICBTdHJpbmcgYW5FbXB0eVN0cmluZyB7ICIiIH07CisgICAgU3RyaW5nIGFuRW1w
dHlTdHJpbmcgeyAiIl9zIH07CiAgICAgU3RyaW5nSW1wbCogYW5FbXB0eVN0cmluZ0ltcGwgPSBh
bkVtcHR5U3RyaW5nLmltcGwoKTsKIAotICAgIFN0cmluZyBhbjhCaXRTdHJpbmcgeyAicsOpc3Vt
w6kiIH07CisgICAgYXV0byBhbjhCaXRTdHJpbmcgPSBTdHJpbmc6OmZyb21MYXRpbjEoInLDqXN1
bcOpIik7CiAgICAgU3RyaW5nSW1wbCogYW44Qml0U3RyaW5nSW1wbCA9IGFuOEJpdFN0cmluZy5p
bXBsKCk7CiAKICAgICBTdHJpbmcgYTE2Qml0U3RyaW5nID0gdXRmMTZTdHJpbmcodSJcdTE2ODBD
YXBwdWNjaW5vXHUxNjgwIik7Cg==
</data>
<flag name="commit-queue"
          id="485778"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>